PHP小白搭建LNMP环境
Ps : 安装前必读
- 个人第一篇文章,选择了后端开发除了自身语言之外比较重要的服务器搭建为CSDN的开始。
- 服务器为CentOs7.2,默认使用阿里云服务器。
- 文中基本所有安装都需要配置额外的Yum源地址。
- 所有Yum源可能随着时间不可用,遇到后请重新寻找合适的源。
- 所有命令建立在 root 账号下,其余账号请添加 sudo。
- 文中所有的服务器用户默认使用 nginx
- 您必须拥有一点点的linux基础
一、Nginx 安装
操作步骤
1.下载Yum源为aliyun
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2.新建Yum安装文件
vim /etc/yum.repos.d/nginx.repo
内容(添加时千万不能忘记按i)
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
3.追加CentOS 6.5的epel及remi源(这一步以防万一)
rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
4.安装nginx
yum install -y nginx
5.加入开机启动并启动服务
systemctl enable nginx.service
systemctl start nginx.service
6.修改配置,修改后重启服务
公众配置
修改 ‘web应用’
cd /etc/nginx/
vim nginx.conf
按 i 按 i 按 i,重要事情说三次!
找到 user 可修改为你想设成web服务器用户(默认:nginx,我一般不改。。。)
# 关闭版本号显示:
server_tokens off;
# 这个自行百度吧。。。
types_hash_max_size 2048;
# 连接体(请求体大小)
client_max_body_size 10M;
# 控制nginx可创建 N 个 M 大的缓冲区(自行百度。。。)
fastcgi_buffers 8 128k;
输入完后,按Esc,输入 :wq 按回车保存
自己单独项目配置
增加自己的配置文件
conf.d为默认配置文件夹
cd conf.d
保留默认
cp default.conf def.conf
mv default.conf default.conf.back
修改自己的配置
vim def.conf
修改项
root 为你的web根目录
server_name 为你的域名
如果有https需求
https需要的秘钥,请自行百度如何获取。。。(阿里云有免费的)
# Http配置
# 监听 443端口
listen 443 ssl;
# 开启ssl加密
ssl on;
# 秘钥文件
ssl_certificate cert/you_ssl.pem;
ssl_certificate_key cert/you_ssl_key.key;
# 超时时间
ssl_session_timeout 5m;
# 可接受加密协议版本
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# 可使用的加密方式
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
# 设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件(这个是我百度的,emmm)
ssl_prefer_server_ciphers on;
配置完重启服务
nginx -s reload
7.常用命令
命令 | 含义 |
---|---|
systemctl enable nginx.service | 开机自启 |
systemctl start nginx.service | 启动nginx |
systemctl restart nginx.service | 重启nginx |
systemctl stop nginx.service | 停止nginx |
nginx -t | 检查配置是否存在错误 |
nginx -s reload | nginx自带的平滑重启,推荐使用这个 |
8.我一般默认的nginx配置
server {
listen 80;
# https 可选,1.1版本之后
# listen 443 ssl;
# 你的域名
server_name Your_domain;
index index.php index.html index.htm;
# 你web根目录,如果为单项目部署,可直接到入口文件目录
root Your_web_root;
# https 相关配置, 可选
# 开启ssl加密 ,1.1版本之前
# ssl on;
# ssl_certificate cert/you_ssl.pem;
# ssl_certificate_key cert/you_ssl.key;
# ssl_session_timeout 5m;
# ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
# ssl_prefer_server_ciphers on;
# 路由规则,根据自己项目实际情况来吧
# 实例为部署到入口目录的TP框架项目默认配置
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
#rewrite ^(.*)$ /public/index.php?s=$1 last;
}
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
access_log off;
error_log /dev/null crit;
add_header Cache-Control public;
expires 15d;
break;
}
location ~ .*\.(js|css)?$ {
add_header Cache-Control public;
expires 1d;
break;
}
# 如果你的框架或者链接为.html结尾一点把这条规则注释掉
location ~ .*\.(html)?$ {
add_header Cache-Control public;
#expires -1;
expires 5m;
break;
}
location ~*\.php$ {
fastcgi_bind 127.0.0.1;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi_param PATH_INFO $fastcgi_script_name;
include fastcgi_params;
#expires -1;
expires 5m;
}
location ~ ^(.*)\/\.svn\/{
deny all;
}
}
二、PHP安装
php高版本的Yum源地址,有两部分,其中一部分是epel-release,另外一部分来自webtatic
操作步骤
1.配置Yum源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
或者
yum install epel-release -y
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
2.防止PHP冲突
yum -y remove php*
3.安装PHP
默认安装及扩展
yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel
豪华扩展
注意如果安装了默认的,豪华版第一行命令就不需要了,避免错误
yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel
yum -y install php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-embedded
yum -y install php72w-xml php72w-imap php72w-ldap php72w-odbc php72w-pear php72w-xmlrpc
4.安装后必要的配置修改
修改fpm
vim /etc/php-fpm.d/www.conf
找到 user、group 的配置项,默认都是 apache
修改 user、group 为 nginx (上面Nginx配置的user)
修改 max_children(子进程),默认 pm.max_children = 50
修改max_children = N,这里根据自己服务器来,普通自己用来练习的100左右也够了
修改需要用到的目录权限
没有意外的话,默认目录是在这里
chown -R nginx:nginx /var/lib/php/session/
chown -R nginx:nginx /var/lib/php/wsdlcache/
如果没有找到,使用下面的命令,或者用另一个笨办法,去运行一下服务器。会告诉你的。。。
find / -name 'session'
5.加入开机启动并启动服务
systemctl enable php-fpm.service
systemctl start php-fpm.service
6.常用命令
命令 | 含义 |
---|---|
systemctl enable php-fpm.service | 开机自启 |
systemctl start php-fpm.service | 启动fpm |
systemctl restart php-fpm.service | 重启fpm |
systemctl stop php-fpm.service | 停止fpm |
三、Mysql 安装
操作步骤
1.下载Yum(这里安装的为5.7)
wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
2.安装YUM库
yum localinstall -y mysql57-community-release-el7-7.noarch.rpm
3.安装数据库
yum install -y mysql-community-server
4.启动MySQL服务
systemctl enable mysqld.service
systemctl start mysqld.service
5.安装后的必要操作
这一步一定要在启动后
安装完毕后,执行下面
cat /var/log/mysqld.log |grep "A temporary password is generated"
没有的话看看是否启动了服务器,或者文件地址不对老办法
find / -name 'mysqld.log'
拿到密码,登录
mysql -uroot -p
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
可选:允许root远程访问,这一步看你需求
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
更新缓存
flush privileges;
或者重启服务都行,建议使用上面的
systemctl restart mysqld.service
有时会因为系统默认安装的防火墙导致无法访问,可关闭防火墙(我没遇到过。。。)
停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
- 常用命令
命令 | 含义 |
---|---|
systemctl enable mysqld.service | 开机自启 |
systemctl start mysqld.service | 启动mysql |
systemctl restart mysqld.service | 重启fpm |
systemctl stop mysqld.service | 停止mysql |
四、其余工作
- 需要给你的web根目录更改所有者,/home/nginx/www替换为你的根目录。nginx root 的配置项
chown -R nginx:nginx /home/nginx/www
五、结束语
非常感谢大家能够看到这里,早就已经想要写属于自己的博客,一直没有去实践,今天比较闲,突发的想法就把平时用到的总结一下,一个最为基础的服务器搭建。
本文对于已经有经验的程序猿来说没有什么用,只能说是我自己的记录,一个入门级的。
大家可以直接拿来用的命令及配置我都特意分出来了,这么良心的博主大家点个赞,收个藏~~~
欢迎大家提出我文章的不足,哪里有错误,欢迎留言补充。
最后感谢大家!!!