注: 我搭建是 Centos6 版本以上的, Centos7 以上有大的改变
一配置防火墙, 开启 80 端口 3306 端口, 删除原有的 iptables , 添加合适的配置
rm - rf / etc / sysconfig / iptablesvim / 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 保存退出, 重启防火墙使配置生效
/etc/init.d / iptables restart centos 7.0 以上执行 systemctl restart firewalld.service
关闭 SELINUX
rm - rf / etc / selinux / configvim / etc / selinux / config
然后添加一行内容:
SELINUX=disabled
:wq 保存退出
进行重启系统
shutdown -r now 注意: 配置好防火墙必须重启系统
二安装第三方 yum 源
安装下载工具
yum install wget
下载
wget http://www.atomicorp.com/installers/atomic
安装
sh ./atomic
更新 yum 源
yum check-update
三安装 Nginx
删除系统自带的软件包
yum remove httpd * php *
安装 nginx
yum install - y nginx
设置 nginx 开机启动
chkconfig nginx on Centos 7.0 以上执行 systemctl enable nginx.service
启动 nginx
service nginx startCentos 7.0 以上 systemctl start nginx.service
注: nginx 启动可能失败, 需要修改配置文件报错如下
Starting nginx:nginx: [emerg] socket()[: :] : 80 failed(97:Address family not supported by protocol)[FAILED]
处理方法
vim /etc/nginx/conf.d/default.conf
将
- listen 80 default_server;
- listen[: :] : 80 default_server;
改为:
listen 80;#listen[: :] : 80 default_server;
保存退出: wq, 重启成功
启动成功后, 打开浏览器, 输入 ip 地址, 可看到 nginx 欢迎页
四安装 PHP
检查当前安装的 PHP 包
yum list installed | grep php
如果有安装的 PHP 包, 先删除他们, 如:
yum remove php.x86_64 php - cli.x86_64 php - common.x86_64
配置安装包源:
- Centos 5.X
- rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm
- CentOs 6.x
- rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
- CentOs 7.X
- rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
- rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
注: 不同版本服务器需要配置对应的安装包, 如果想删除上面安装的包重新安装
rpm - qa | grep webstaticrpm - e[上面搜索到的包即可]
执行安装
- yum -y install php56w.x86_64
- yum -y --enablerepo=webtatic install php56w-devel
- yum -y install php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64
- yum -y install php56w-mysql.x86_64 php56w-pdo.x86_64 php56w-opcache.x86_64
注: 每条命令看到 Complete! 才成功
安装 PHP FPM
yum - y install php56w - fpm
设置 php-fpm 开机启动
chkconfig php - fpm onCentos7.0 以上 systemctl enable php - fpm.service
启动 php-fpm
/etc/init.d / php - fpm startCentos 7.0 以上 systemctl start php - fpm.service
注: 如果想更换到 php5.5 或 5.4 版本, 直接把上面的 56w 换成 55w 或者 54w 就可以了
五 安装 MySQL
安装
yum install - y mysql mysql - server
启动 MySQL
/etc/init.d / mysqld start
设为开机启动
chkconfig mysqld on
拷贝配置文件 (注意: 如果 / etc 目录下面默认有一个 my.cnf, 直接覆盖即可)
cp / usr / share / mysql / my - medium.cnf / etc / my.cnf
为 root 用户设置密码
mysql_secure_installation
回车, 根据提示输入 Y, 输入 2 次密码, 回车, 根据提示一路输入 Y, 最后出现:
Thanks for using MySQL!
MySql 密码设置完成, 重新启动 MySQL:
- # 重启
- /etc/init.d / mysqld restart
停止
/etc/init.d / mysqld stop
启动
/etc/init.d / mysqld start
六配置 nginx
我存放的 nginx 路径地址
- [root@iZ2zeftluibm3hesz36v3tZ conf.d]# pwd
- /etc/nginx/conf.d
- [root@iZ2zeftluibm3hesz36v3tZ conf.d]# ll
- total 20
- -rw-r--r-- 1 root root 1501 Feb 9 10:54 admin.shop.conf
- -rw-r--r-- 1 root root 434 Dec 25 20:39 default.conf.bak
- -rw-r--r-- 1 root root 1419 Feb 8 17:19 web.shop.conf
因为 nginx.conf 里面
include /etc/nginx/conf.d/*.conf;
在 / etc / nginx / conf.d 下面新建一个. conf 的文件把这个东西复制进去 {
listen 80;
server_name 解析域名;
- index index.php index.html index.htm
- default.html
- default.htm
- default.php;
- client_header_buffer_size 16k;
- large_client_header_buffers 4 32k;
- client_max_body_size 300m;
- client_body_buffer_size 128k;
- location / {
root 项目路径;
- index index.php;
- proxy_connect_timeout 3000;
- proxy_send_timeout 3000;
- proxy_read_timeout 3000;
- proxy_buffer_size 4k;
- proxy_buffers 4 32k;
- proxy_busy_buffers_size 64k;
- if (!-e $request_filename) {
- rewrite ^ /index.php(.*)$ /index.php ? s = $1 last;
- rewrite ^ (. * ) $ / index.php ? s = $1 last;
- break;
- }
- }
- location~\.php$ {
root 项目路径;
- fastcgi_pass 127.0.0.1 : 9000;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
- }
:wq 保存退出
七 配置 php-fpm
vim / etc / php - fpm.d / www.conf
将用户和用户组设置为 nginx, 如:
修改用户为 nginx
user = nginx
修改组为 nginx
group = nginx
八开始测试
- cd /
- var / www vim index.php
添加以下代码
- <?php
- phpinfo();
- ?>
- :wq!
保存退出
- # 设置权限
- chown nginx.nginx /var/www -R
- # 重启 nginx
- service nginx restart
- # 重启 php-fpm
- service php - fpm restart
这时你的 mysql 数据库不能远程连接的, 此时你应该授权一下
USE mysql; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION; FLUSH PRIVILEGES;
注意: GRANT ALL PRIVILEGES 表示授权所有权限, 上面 *.* 中第一个 * 是授权可以访问的数据库名称, root 是用户名, % 表示授权所有的 IP 地址
到这里就大致写完了, 网上搭建服务器环境的很多, 我也是综合各个前人经验, 加入一些自己的理解, 希望对有需要的朋友能有一点小小的帮助这里推荐我上一篇 Git 版本库的搭建哦
来源: https://juejin.im/post/5a7d35625188257a5e5739a6