CentOS6.8 使用非官方源安装LNMP环境 PHP7 MySQL55 Nginx18

虽然网上能找到一大堆安装LNMP环境的文章, 讲的都是直接使用CentOS源安装, 最后安装完会发现都是很老的软件了, 叫人吐槽不能.
如果使用源码编译又是各种坑, 还好我们还有第三方源可以使用, 接下来我就使用第三方源来安装LNMP (PS: 其实还是有不不少坑的)

添加epel源

这个第三方源应该不至于不知道吧, 有了他基本就能安装绝大部分的新版软件了, 妈妈在也不用担心编译失败了呢.(念念碎: 编译的苦, 只有真正编译过的人才能体会/(ㄒoㄒ)/~~)

1
2
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

安装软件

这里只介绍安装: Nginx, PHP, MySQL, 其它的就自行摸索吧, 大同小异.

创建web账号

这里先创建一个web账号, 用于管理整个web服务

1
2
3
4
5
6
7
8
9
10
11
12
13
useradd www	# 添加用户
passwd www # 设置密码

# 取消用户ssh登录权限
usermod -s /sbin/nologin www

# 添加SELinux权限 http://stackoverflow.com/questions/6795350/nginx-403-forbidden-for-all-files
chcon -Rt httpd_sys_content_t /home/www

# 其实这里建议关闭SELinux和iptables(这两个东西可以菜鸟杀手), 这只是临时关闭, 并不建议永久关闭
# 如何使用SELinux和iptables就自行google吧, 这里就不进行赘述了
/etc/init.d/iptables stop
setenforce 0

安装nginx1.8

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
yum install -y nginx18

# 更改所有者, 上面创建的账号排上用场了
# 也可以不更改, 不过建议更改
vi /etc/nginx/nginx.conf
user www www;

# 配置虚拟主机, 配置文件这里就不贴出来了, 没上面太大意义
# 我们主要讲如何安装, 和遇到那些坑
cd /etc/nginx/conf.d/ # 虚拟主机目录
vi default.conf

/etc/init.d/nginx restart # 修改完重启

# 更改nginx所有者
# 如果不更改的话你会发现, phpinfo的信息无法打印出来, 这个也是小坑了下
chown -R www:www /var/lib/nginx/

安装php7和相关扩展

1
2
3
4
5
6
7
8
yum install -y php70w php70w-fpm php70w-opcache php70w-mysqlnd

# 更改所有者, 与上面保持一致
vi /etc/php-fpm.d/www.conf
user = www
group = www

/etc/init.d/php-fpm restart # 修改完毕后重启

PS: 推荐安装php70w-mysqlnd, 不要安装php70w-mysql 我可被坑惨了, 被坑全过程: 关于php7 设计链接mysqlutf8mb4字符集的问题

安装mysql5.5

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
yum install -y mysql55w mysql55w-server

# 如果发现无法安装, 可能是系统中的 mysql-libs 版本不够高, 卸载后再执行上面的安装命令即可
yum remove -y mysql-libs

# 设置root密码
mysql_upgrade -u root -p

# 如果发现无法设置密码
vim /etc/my.cnf # 在[mysqld]的段中加上一句: skip-grant-tables
/etc/init.d/mysqld restart
mysql
> USE mysql;
> UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root';
> flush privileges;
> \q

vim /etc/my.cnf # 将刚才在[mysqld]的段中加上的 skip-grant-tables 删除
/etc/init.d/mysqld restart

开机自起

设置这些软件开机自动启动, 免得重启的时候忘记启动

1
2
3
chkconfig --levels 235 mysqld on
chkconfig --levels 235 nginx on
chkconfig --levels 235 php-fpm on

总结

整个安装过程看似挺简单的, 但是实际我安装完差不多花了有三个半小时, 主要是其中的几个坑把我坑的不要不要, 不过也挺好的毕竟问题都圆满的解决了, 还是蛮有成就管的, 哈哈…

参考资料

How To Install Linux, nginx, MySQL, PHP (LEMP) stack on CentOS 6
PHP 7 on CentOS/RHEL 6.8 and 7.2 via Yum
Nginx 1.8 on CentOS/RHEL 7.1 and 6.7 via Yum
MySQL 5.5 on CentOS/RHEL 6.7 and 5.11 via Yum
Nginx 403 forbidden for all files
Nginx权限问题导致Phpinfo显示不全,或者不显示。