上次使用 OneinStack 一键部署了 lnmp
这次我们自己动手安装 lnmp 环境
以下教程仅供个人学习记录,在此期间参考了 下站见 的安装教程
准备工作
1.查看环境
[root@SKY-YUN ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)
本机在这里使用的是 Centos 6.8
2.配置防火墙,开启80端口、3306端口rm -rf /etc/sysconfig/iptables
删除原先的防火墙配置vi /etc/sysconfig/iptables
添加如下内容
########################### 添加之后防火墙规则如下所示 ##############################
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
#######################################################################################
输入:wq
保存退出,重启防火墙使配置生效service iptables restart
3.关闭SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq #保存退出
shutdown -r now #重启系统
4.配置环境yum -y groupinstall "Development Tools"
安装开发者工具包yum install epel-release
yum update
系统升级到最新
开始安装
lnmp 即是 linux 系统下 Nginx、Mysql、PHP 环境的简称
nginx 和 mysql 我们采用 YUM 安装 速度很快 可以直接 yum 升级版本
PHP 我们采用编译安装
一、安装 Nginx (Yum安装)
1.配置第三方 yum 源(CentOS默认的标准源里没有 nginx 软件包,我们自己从官网装最新的)
在 Nginx 官网 http://nginx.org/en/linux_packages.html#stable 找到链接,安装:rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
查看刚刚配置的 nginx
[root@SKY-YUN ~]# yum info nginx
Available Packages
Name : nginx
Arch : x86_64
Version : 1.10.2
Release : 1.el6.ngx
Size : 825 k
Repo : nginx
2.安装 nginx
yum install nginx
等待安装完成、这个时候我们启动 nginx 服务 service nginx start
此时我们直接访问 ip 应该能打开 nginx 安装成功的页面了
我们还可以在 nginx 的配置文件 /etc/nginx/nginx.conf
中 http {}
内加入一行 server_tokens off;
以关闭 nginx 显示版本号提升安全
3.将 nginx 设为开机启动 chkconfig nginx on
4.重启 nginx
service nginx restart
二、安装 Mysql 数据库 (Yum安装)
1.先从官网查看适合你系统的仓库
http://dev.mysql.com/downloads/repo/yum/
这里我 centos 6 对应的是 mysql57-community-release-el6-9.noarch.rpm
然后我们下载对应的仓库rpm -Uvh http://repo.mysql.com/xxxx.rpm
# xxx替换为上面的地址
2.下载完成后将 Yum 库导入到你的本地sudo yum localinstall mysql57-community-release-el6-9.noarch.rpm
使用这个命令可以查看安装列表yum repolist enabled | grep "mysql.*-community.*"
我们可以看到这个 Yum 库包含了MySQLServer,MySQL工作台管理工具以及ODBC驱动,这里我们全部安装
3.现在可以通过下面的命令简单地安装 MySQLServer ,这样我们就安装了最新的 Mysqlsudo yum install mysql-community-server
Installed:
mysql-community-libs.x86_64 0:5.7.16-1.el6 mysql-community-server.x86_64 0:5.7.16-1.el6
Dependency Installed:
mysql-community-client.x86_64 0:5.7.16-1.el6 mysql-community-common.x86_64 0:5.7.16-1.el6
Replaced:
mysql-libs.x86_64 0:5.1.73-7.el6
Complete!
出现这个页面即是安装完成
可以见到 yum 这种安装方式无需手工编译安装,同时也将确保导入相关依赖库,这些都将使我们的安装过程简单化。
4.现在通过以下命令打开 mysql 服务
[root@SKY-YUN packages]# service mysqld start
Initializing MySQL database: [ OK ]
Installing validate password plugin: [ OK ]
Starting mysqld: [ OK ]
5.设置开机自动启动chkconfig mysqld on
6.设置 mysql 密码
首先 Mysql 首次安装已经生成了一个密码 我们输入grep "password" /var/log/mysqld.log
找到这一行 [Note] A temporary password is generated for root@localhost:xxxxxx
xxxxxx 即是默认生成的密码
然后我们使用 xxxxxx 登陆 mysqlmysql -u root -p
会提示我们输入密码 Enter password:
这个时候输入的密码是不显示的 建议直接复制粘贴
登陆成功会提示 Welcome to the MySQL monitor. 的提示页面
之后我们直接在 mysql 控制台输入以下代码来更改密码ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
可能会提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这个意思就是 密码强度太弱 推荐使用强密码
如果想关闭弱密码检查 更改配置文件vi /etc/my.cnf
在[mysqld]
字段加入validate-password=OFF
然后重启 Mysql service mysqld restart
即可
三、安装 PHP7 (编译安装)
世界上最好的语言 终于出 php7 了
1.首先配置 PHP 所需要依赖包yum install libxml2-devel freetype curl curl-devel libpng-devel libjpeg libjpeg-devel libmcrypt freetype-devel libmcrypt-devel libxslt libxslt-devel
2.去 PHP 官网下载最新的 PHP7
官网下载:http://www.php.net/downloads.phpwget http://cn2.php.net/distributions/php-7.0.12.tar.gz
然后解压压缩包tar zxvf php-7.0.12.tar.gz
cd php-7.0.12
进入解压的 PHP 文件夹
3.开始安装
安装 PHP
./configure --prefix=/usr/local/php7 --exec-prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --with-zlib-dir --with-mhash --with-mcrypt --with-openssl-dir --with-jpeg-dir --enable-gd-jis-conv --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --disable-fileinfo
编译 PHPmake && make install
4.添加 PHP 环境
编辑文件vim /etc/profile
在文件的最后加入 export PATH="/usr/local/php7/bin:$PATH"
然后 source /etc/profile
这时候我们就能查看 PHP 版本了
[root@SKY-YUN php-7.0.12]# php -v
PHP 7.0.12 (cli) (built: Oct 24 2016 23:49:17) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
5.配置 PHP
复制一些配置文件cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
给 php-fpm 权限chmod +x /etc/init.d/php-fpm
启动 php-fpm 服务service php-fpm start
设置 php-fpm 开机自启chkconfig php-fpm on
配置 lnmp 环境
1.链接 php 与 nginx
打开 nginx 的配置文件vi /etc/nginx/conf.d/default.conf
去掉以下代码前面的#注释
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
重启 nginx 服务器service nginx restart
在防火前添加 端口iptables -I INPUT -p tcp --dport 9000 -j ACCEPT
保存防火墙设置service iptables save
重启防火墙service iptables restart
2.链接 mysql 与 php
编辑 php 配置文件/usr/local/php7/etc/php.ini
在pdo_mysql.default_socket=
和mysqli.default_socket =
后面加上/var/lib/mysql/mysql.sock
即是
pdo_mysql.default_socket= /var/lib/mysql/mysql.sock
mysqli.default_socket= /var/lib/mysql/mysql.sock
然后我们可以在/usr/share/nginx/html
下新建个php文件试试vi /usr/share/nginx/html/sky.php
在头部插入<?php phpinfo();?>
即可显示 php 版本信息
为了安全我们需要关闭网页头部 php 版本信息
编辑/usr/local/php7/etc/php.ini
将expose_php = On
改成Off
重启即可。
到此我们的 lnmp 环境 应该配置完成了
完结撒花~
评价一下Linux目录结构,个人感觉还是FreeBSD目录结构看着舒服。