CentOS7 web服务器搭建
手里有台闲置的搭建旧电脑,装了个CentOS7,搭建想让它跑起来当web服务器。搭建网上教程多半又臭又长,搭建我踩完坑直接给你说干货。搭建
先装基础包。搭建CentOS7默认源里没有nginx,搭建得先装epel仓库:
yum install epel-release -y
然后装nginx和php-fpm,搭建yum install nginx php-fpm php-mysql -y。搭建别问我为什么不用Apache,搭建nginx轻巧,搭建单机扛个几千并发没问题,搭建我这台老机器跑起来风扇都不带加速的搭建。
装完先别急着启动。搭建改配置,搭建这是关键。nginx默认站点根目录在/usr/share/nginx/html,我习惯改成/var/www/html,方便管理。编辑/etc/nginx/nginx.conf,找到server块,改两处:
root /var/www/html;
index index.php index.html index.htm;
然后取消php-fpm相关的注释,把fastcgi_pass指向127.0.0.1:9000。这里有个坑,CentOS7的SELinux默认开着,直接改目录会报403。要么setenforce 0临时关掉,要么执行chcon -R -t httpd_sys_content_t /var/www/html。我图省事直接关了,生产环境你还得老老实实配SELinux策略。
启动服务,设开机自启:
systemctl start nginx php-fpm
systemctl enable nginx php-fpm
这时候在浏览器输IP,应该能看到nginx欢迎页。看不到?先查防火墙,systemctl stop firewalld或者放行80端口:firewall-cmd --permanent --add-service=http && firewall-cmd --reload。八成是防火墙挡着,CentOS7默认防火墙比6代严多了。
接下来测试PHP。在网站根目录建个探针文件:
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
浏览器访问http://你的IP/info.php,看到PHP信息页就通了。如果下载文件而不是显示页面,那说明nginx没把php文件交给php-fpm处理,回去检查nginx配置里location ~ \.php$那段有没有写对。
数据库看需求装。WordPress之类程序需要MySQL,CentOS7默认源里是MariaDB,兼容MySQL协议:
yum install mariadb-server mariadb -y
systemctl start mariadb && mysql_secure_installation
装完跑一下安全脚本,设个root密码,删掉匿名用户。我一般还会建个专用账号给网站用,避免root直连。
最后说点个人建议。别把网站文件直接丢在默认目录,养成习惯用独立用户跑服务。另外CentOS7的nginx版本有点老,想要新版可以去nginx官网装官方源。这台机器我跑了半年,稳定得很,除了偶尔清理下日志,基本不用管。
对了,记得定期yum update,安全补丁不能拖。别问我怎么知道的,被挂过挖矿脚本的痛你不懂。
