资讯专栏INFORMATION COLUMN

服务器上轻松部署你的PHP7运行环境

SegmentFault / 2134人阅读

摘要:简介对于有时候服务器的安装部署每次有的过程忘记总得再把之前的笔记再找出来现在将整个流程做一个整理结合自己以前遇到的各种坑和实践经验吧这里是这样也方便以后少浪费点时间在查找各种笔记博客地址我的地址欢迎关注集成环境安装方式一如果你嫌这样麻烦这里

简介

对于有时候服务器的安装部署 每次有的过程忘记总得再把之前的笔记再找出来 现在将整个流程做一个整理

结合自己以前遇到的各种坑和实践经验吧 这里是Centos7.2 这样也方便以后少浪费点时间在查找各种笔记

博客地址

我的github地址 欢迎关注

集成环境安装(方式一)

如果你嫌这样麻烦这里推荐一个非常实用的集成环境安装(也算是一个彩蛋喽)

https://oneinstack.com/

当然如果你想自己手动安装的话就继续看看下面的文章吧

服务目录

Nginx /etc/nginx

Mysql /var/lib/mysql

php7.1 /usr/local/php

php-fpm /usr/local/bin/php-fpm

phpmyadmin /data/www/phpmyadmin

站点根目录 /data/www/

安装nginx
$ sudo yum install nginx

这里你可以选择编译安装或者这种仓库的形式安装 编译安装的可选择性更好 你可以安装到指定的目录

比如我们一般或放在/usr/local/nginx

这里采用的是包的安装 此时nginx安装在/etc/nginx 安装完毕之后

$ nginx -v

Nginx服务的一些命令形式

$ systemctl restart nginx
$ systemctl stop nginx
$ systemctl start nginx
安装Mysql57

1.下载 mysql57-community-release-el7-8.noarch.rpmYUM 源:

$ yum install mysql57-community-release-el7-8.noarch.rpm
$ wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

2.查看mysql源是否安装成功

$ yum repolist enabled | grep "mysql.*-community.*"

安装 MySQL(一路Y就可以):

$ yum install mysql-community-server

4.启动Mysql

$ systemctl start mysqld

5.设置开机启动

$ systemctl enable mysqld
$ systemctl daemon-reload

6.接下来就是去修改数据库的密码

mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:

必须为启动mysql之后

$ grep "temporary password" /var/log/mysqld.log

有了这个密码去登录mysql

$ mysql -u root -p

mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:
大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000):
Your password does not satisfy the current policy requirements错误,

所以这里的解决办法就是要么修改的密码满足他的验证规则 如果你想密码不用那么复杂 那么你就可以去关闭这些验证规则

7.在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略

当然你也可以直接关闭验证

$ vim /etc/my.cnf

接着在末尾添加:

$ validate_password = off

填写完密码之后就可以登录了 接着设置密码:

$ set password = password("xxxx");

8.重启我们的mysql

$ systemctl restart mysqld

接下来我们就可以直接使用刚设置的密码去登录服务器的mysql

9.一些命令

启动 MySQL 服务:service mysqld start

关闭 MySQL 服务:service mysqld stop

重启 MySQL 服务:service mysqld restart

查看 MySQL 的状态:service mysqld status & systemctl status mysqld

10、添加远程登录用户
默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,
或者添加一个允许远程连接的帐户(这种最为理想) 这里我们先给所有用户以权限

$ grant all privileges on *.* to "root"@"%" identified by "123456" with grant option;
# root是用户名,%代表任意主机,"123456"指定的登录密码(这个和本地的root密码可以设置不同的,互不影响)
$ flush privileges; # 重载系统权限
$ exit;

12.Centos 7 防火开启3306端口

然后编辑系统的开放端口列表,增加3306端口,重启防火墙即可。

vi /etc/sysconfig/iptables # 加上下面这行规则也是可以的
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
$ iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

13.配置默认编码为utf8
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:

[mysqld]
character_set_server=utf8
init_connect="SET NAMES utf8"

14 文件目录:

存放数据库文件的目录 /var/lib/mysql

默认配置文件路径: /etc/my.cnf

日志文件:/var/log//var/log/mysqld.log

服务启动脚本:/usr/lib/systemd/system/mysqld.service

socket文件:/var/run/mysqld/mysqld.pid

安装phpmyadmin

1.官网下载

phpmyadmin

下载完毕之后可以上传到服务器的目录 例如可以放在/root/phpmyadmin/

2.进入目录 解压文件

$ cd /root/phpmyadmin
$ unzip phpMyAdmin-4.7.0-all-languages.zip

3.移动解压后的文件到站点根目录(nginx 配置的root路径为/data/www ) 比如

$  mv phpMyAdmin-4.7.0-all-languages /data/www/phpmyadmin

4.修改文件的拥护者

$ chown root:root /data/www/phpmyadmin

5.这里可能遇到的问题

提示没有发现指定文件

如果不存在/var/mysql则创建

$ sudo mkdir /var/mysql

接着创建一个软连接

$ sudo ln -s /var/lib/mysql/mysql.sock /var/mysql/mysql.sock

如果你找不到你服务器下的文件 可以查找(以上只是我的目录):

$ sudo find / -name mysql.sock
需要一个密文

那么在配置文件填入大于32为的字符串就可以了:

$cfg["blowfish_secret"]="";

接着可以在/etc/nginx下去创建phpmyadmin.conf 内容是:

location /phpMyAdmin {
    alias /data/www/phpMyAdmin;
    index index.php;
    location ~ ^/phpMyAdmin/.+.php$ {
        alias /data/www/phpMyAdmin;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /data/www$fastcgi_script_name;
        include        fastcgi_params;
    }
}

接着你可以在nginx.conf里去包含这个配置文件

 location ~* .php$ {
            fastcgi_index   index.php;
            fastcgi_pass    127.0.0.1:9000;
            include         fastcgi_params;
            fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
            fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
 }
 include /etc/nginx/phpmyadmin.conf;

接着你可以访问http://example.com/phpmyadmin就可进入phpmyadmin操作数据库了

编译安装PHP7

1.下载

wget -O php7.tar.gz http://cn2.php.net/get/php-7.1.1.tar.gz/from/this/mirror

2.解压php7

$ tar -xvf php7.tar.gz

3.进入php7目录

$ cd PHP-7.1.1

4.下载相关依赖

$ yum install -y libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel

5.当然在编译安装之前 需要下载gcc编译

$ yum install -y gcc

6.编译配置

./configure  
--prefix=/usr/local/php 
--with-config-file-path=/usr/local/php/etc 
--exec-prefix=/usr/local/php 
--bindir=/usr/local/php/bin 
--sbindir=/usr/local/php/sbin 
--includedir=/usr/local/php/include 
--libdir=/usr/local/php/lib/php 
--mandir=/usr/local/php/php/man 
--enable-fpm 
--with-fpm-user=nginx 
--with-fpm-group=nginx 
--enable-inline-optimization 
--disable-debug 
--disable-rpath 
--enable-shared 
--enable-soap 
--with-libxml-dir 
--with-xmlrpc 
--with-openssl 
--with-mcrypt 
--with-mhash 
--with-pcre-regex 
--with-sqlite3 
--with-zlib 
--enable-bcmath 
--with-iconv 
--with-bz2 
--enable-calendar 
--with-curl 
--with-cdb 
--enable-dom 
--enable-exif 
--enable-fileinfo 
--enable-filter 
--with-pcre-dir 
--enable-ftp 
--with-gd 
--with-openssl-dir 
--with-jpeg-dir 
--with-png-dir 
--with-zlib-dir 
--with-freetype-dir 
--enable-gd-native-ttf 
--enable-gd-jis-conv 
--with-gettext 
--with-gmp 
--with-mhash 
--enable-json 
--enable-mbstring 
--enable-mbregex 
--enable-mbregex-backtrack 
--with-libmbfl 
--with-onig 
--enable-pdo 
--with-mysql=mysqlnd  
--with-mysqli=mysqlnd 
--with-pdo-mysql=mysqlnd                     
--with-zlib-dir 
--with-pdo-sqlite 
--with-readline 
--enable-session 
--enable-shmop 
--enable-simplexml 
--enable-sockets 
--enable-sysvmsg 
--enable-sysvsem 
--enable-sysvshm 
--enable-wddx 
--with-libxml-dir 
--with-xsl 
--enable-zip 
--enable-mysqlnd-compression-support 
--with-pear 
--enable-opcache

整理之后可以在服务器里面执行

./configure  --prefix=/usr/local/php --exec-prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --bindir=/usr/local/php/bin --sbindir=/usr/local/php/sbin
 --includedir=/usr/local/php/include --libdir=/usr/local/php/lib/php --mandir=/usr/local/php/php/man --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx 
 --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-soap --with-libxml-dir --with-xmlrpc --with-openssl --with-mcrypt --with-mhash 
 --with-pcre-regex --with-sqlite3 --with-zlib --enable-bcmath --with-iconv --with-bz2 --enable-calendar 
--with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --with-pcre-dir --enable-ftp --with-gd --with-openssl-dir --with-jpeg-dir 
--with-png-dir --with-zlib-dir --with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring 
--enable-mbregex --enable-mbregex-backtrack --with-libmbfl --with-onig --enable-pdo --with-mysql=mysqlnd  --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd  --with-zlib-dir
--with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets
--enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir --with-xsl --enable-zip --enable-mysqlnd-compression-support --with-pear --enable-opcach

从配置中看到

--prefix=/usr/local/php 

所以最终的php安装目录为 /usr/local/php

配置文件设置

$ --with-config-file-path=/usr/local/php/etc 

配置文件放在usr/local/php/etc

7.正式安装

$ make && make install

8.配置环境变量

$ vi /etc/profile

在最后加上(也就是我们安装php存放的路径):

PATH=$PATH:/usr/local/php/bin
export PATH

执行命令使得改动立即生效

$ source /etc/profile

10.配置php-fpm

$  cp php.ini-production /usr/local/php/php.ini

$ cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

cp sapi/fpm/init.d.php-fpm /usr/local/bin/php-fpm

所以我们php-fpm的位置为usr/local/bin/php-fom

11.配置php.ini

需要着重提醒的是,如果文件不存在,则阻止 Nginx 将请求发送到后端的 PHP-FPM 模块, 以避免遭受恶意脚本注入的攻击。
php.ini 文件中的配置项 cgi.fix_pathinfo 设置为 0

vim /usr/local/php/php.ini

定位到 cgi.fix_pathinfo= 并将其修改为如下所示

cgi.fix_pathinfo=0

编辑nginx.conf

 vim /etc/nginx/nginx.conf

12.php-fpm的一些命令形式

/usr/local/bin/php-fpm [start | stop | reload]
部署ssl证书
    server {
        listen       443 ssl http2 default_server;
        server_name  www.example.com;
        root         /data/www;  #站点的根目录

        ssl on;
        ssl_certificate "/usr/ssl/1_www.example.com_bundle.crt";
        ssl_certificate_key "/usr/ssl/2_www.example.com.key";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
            index  index.php  index.html index.htm;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

这里的证书和解密后的私钥文件放在/usr/ssl/目录下
每个证书的提供商可能提供的形式不一样 不过最终我们需要的就是颁发的证书和解密后的私钥文件

相关链接文档

Mysql

http://www.centoscn.com/mysql/2016/0626/7537.html

http://www.linuxidc.com/Linux/2016-09/135288.htm

http://www.linuxidc.com/Linux/2016-06/132676.htm

PHP

http://php.net/manual/zh/install.unix.nginx.php

http://www.jb51.net/article/109228.htm

http://blog.csdn.net/dglxsong/article/details/52075918

http://blog.csdn.net/u014595668/article/details/50188127

SSL证书
腾讯云的证书配置

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22889.html

相关文章

  • 务器轻松部署你的PHP7运行环境

    摘要:简介对于有时候服务器的安装部署每次有的过程忘记总得再把之前的笔记再找出来现在将整个流程做一个整理结合自己以前遇到的各种坑和实践经验吧这里是这样也方便以后少浪费点时间在查找各种笔记博客地址我的地址欢迎关注集成环境安装方式一如果你嫌这样麻烦这里 简介 对于有时候服务器的安装部署 每次有的过程忘记总得再把之前的笔记再找出来 现在将整个流程做一个整理 结合自己以前遇到的各种坑和实践经验吧 这里...

    andong777 评论0 收藏0
  • PHP新手开发者的路线建议

    摘要:年开发者应该熟练使用,并且知道版本更新内容。对开发和运维人员来说,最希望的就是一次性创建或配置,可以在任意地方正常运行。是标准规范,是开发的实践标准。对开发者来说语言推荐和,全栈的选择非常多,推荐热门的 前言 在前天(2018-08-02)已经发布了PHP 7.3.0.beta1 Released 如果你还没有使用 PHP7 ,那真的很遗憾。2018年PHP开发者应该熟练使用 PHP7...

    klinson 评论0 收藏0
  • 一步一步教你部署自己的 Laravel 应用程序到务器

    摘要:包括安装与下载,证书申请与配置,升级到,服务器的简单配置。这对一个应用来说,所造成的后果无疑是毁灭性的。然后在新建一个目录,将刚才的文件放进去,便于统一管理其中红色框框的是要用到文件。 原文地址: here 在部署自己的博客到 LEMP 环境的时候,遇到了一些小挫折,现在把经验分享出来,让大家少走弯路。包括Php7.1安装与下载,SSL证书申请与配置,Mysql升级到5.7,Ngin...

    lolomaco 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<