一个php项目部署到本地的辛酸历程

一:php本地环境部署:

1,检查本地php版本

      brew  search php

2, 安装php7.2

      brew  install  [email protected]

3, 查看是否安装成功

php -v

4,如果查看版本不是7.2,则需要配置本地环境,先查看下,执行:

     brew link php72

5,然后执行查出的二条命令:

echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> /Users/xiaocui/.bash_profile

echo 'export PATH="/usr/local/opt/[email protected]/sbin:$PATH"' >> /Users/xiaocui/.bash_profile

6,编辑php本地配置文件:php.ini:

     vim /usr/local/etc/php/7.2/php.ini

7,在配置文件里面添加

      zend_extension=ioncube_loader_mac_7.2.so

8,然后把文件放到对应的目录里面去,放的大概的位置为:

/usr/local/Cellar/[email protected]/7.2.13_1/lib/php/20170718/

9,执行php -v 查看是否成功,如果报错则把文件放下面的目录里:

/usr/local/lib/php/pecl/20170718/ioncube_loader_mac_7.2

10,再执行: php -v

显示:Zend Engine v3.2.0…….则为正确。

二:项目相关联的处理

1,然后你在 vscode 的终端执行:

 php -S localhost:8002 -t jizhe/     #说明:vscode 要打开 jizhe 的上一个目录,或者随便你在哪,只要你指对 -t 后面的目录就行

我的目录为:php -S localhost:8002 -t  /Users/xiaocui/Desktop/jzymt/jizhe

2,然后打开浏览器访问 localhost:8002/install/

3,然后连接数据库:

数据库用的编码是:utf8加utf8_bin

以上步骤完成,会发现出现SSL证书问题;

三,添加ssl证书,本地再次部署:

1,查看本地是否有nginx

nginx  -v

2,没有安装则:

brew  install nginx 

3,nginx 常用命令:

nginx  启动

nginx -s reload 重启//每次更改配置后需要重启

nginx -t  测试配置是否正确

4,配置文件位置大概在 /usr/local/etc/nginx/nginx.conf

然后添加ssl配置:

server {

       listen       443 ssl;

server_namecjw.com;

ssl_certificatecjw.com.pem;#证书放在nginx.conf同级目录下。

ssl_certificate_keycjw.com.key;

        ssl_session_timeout 5m;

        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        ssl_prefer_server_ciphers on;

server_namecjw.com;

        root   "/Users/xiaocui/Desktop/jzymt/jizhe";

        location /h5/ {

            try_files $uri $uri/ @router;#需要指向下面的@router否则会出现vue的路由在nginx中刷新出现404

            index  index.html index.htm;

        }

        # 对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件

        # 因此需要rewrite到index.html中,然后交给路由在处理请求资源

        location @router {

            rewrite ^.*$ /h5/index.html last;

        }

        location / {

            index index.php index.html error/index.html;

            error_page 400 /error/400.html;

            error_page 403 /error/403.html;

            error_page 404 /error/404.html;

            error_page 500 /error/500.html;

            error_page 501 /error/501.html;

            error_page 502 /error/502.html;

            error_page 503 /error/503.html;

            error_page 504 /error/504.html;

            error_page 505 /error/505.html;

            error_page 506 /error/506.html;

            error_page 507 /error/507.html;

            error_page 509 /error/509.html;

            error_page 510 /error/510.html;

            autoindex  off;

        }

        location ~ \.php(.*)$ {

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;

            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

            fastcgi_param  PATH_INFO  $fastcgi_path_info;

            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;

            include        fastcgi_params;

        }

    }

5,mysql链接:

链接mysql用编码uft8字符集utf8_bin创建数据库;

6,需改mysql的sql_mode

输入:mysql  -u  root  -p

输入数据库密码:12345678

进入后输入:set global sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;

注意要加分号结尾;

如果输入后报错为:error 1231(42000) variable ’sql_mode’ can,t be set of ‘NO_AUTO_CREATE_USER’

则执行:select @@sql_mode;   里面会出现一些值;全部复制后:把 NO_ZERO_IN_DATE 和 NO_ZERO_DATE 去掉,然后 执行 set global sql_mode='你复制的东西';

7,开启nginx 

nginx

8,输入网址:https://cjw.com/jizhe/install

如果网页打不开:

9,进入本地host

vim /etc/hosts

10,加一行127.0.0.1cjw.com

11,刷新页面:没有访问权限的话,对着页面输  thisisunsafe

12,如果还不行,查看nginx.conf里面的root路径是否正确

13:让本地跑起来,执行下面二行语句,然后终端不要关闭

  nginx 

 php-fpm

14,然后查看网页是否成功:

输入:https://cjw.com/jizhe/install

输入:https://cjw.com/jizhe/h5

输入:https://cjw.com/jizhe/

输入:https://cjw.com/jizhe/admin.php

你可能感兴趣的:(一个php项目部署到本地的辛酸历程)