傻瓜式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 reloadnginx自带的平滑重启,推荐使用这个

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 
  1. 常用命令
命令含义
systemctl enable mysqld.service开机自启
systemctl start mysqld.service启动mysql
systemctl restart mysqld.service重启fpm
systemctl stop mysqld.service停止mysql

四、其余工作

  1. 需要给你的web根目录更改所有者,/home/nginx/www替换为你的根目录。nginx root 的配置项
chown -R nginx:nginx /home/nginx/www

五、结束语

非常感谢大家能够看到这里,早就已经想要写属于自己的博客,一直没有去实践,今天比较闲,突发的想法就把平时用到的总结一下,一个最为基础的服务器搭建。
本文对于已经有经验的程序猿来说没有什么用,只能说是我自己的记录,一个入门级的。
大家可以直接拿来用的命令及配置我都特意分出来了,这么良心的博主大家点个赞,收个藏~~~
欢迎大家提出我文章的不足,哪里有错误,欢迎留言补充。

最后感谢大家!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值