部署php的正确姿势

1、 更新源

apt-get update

2、安装apache

apt-get install apache2

ubuntu下apache2虚拟主机配置

  

cd /etc/apache2/sites-available
ls
000-default.conf  default-ssl.conf
sudo cp 000-default.conf 000-default.conf.bak
sudo vim 000-default.conf

  文件修改为以下内容

// 此处由于下边要把apache端口设为8080 也要改为8080端口
<VirtualHost *:8080>
  
    ServerAdmin webmaster@localhost
    DocumentRoot /data/www
  
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
  
    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
  
</VirtualHost>

 

3、安装php7.0

apt-get install php7.0

4、安装mysql  https://www.cnblogs.com/Mvloveyouforever/p/9931290.html

5、安装nginx

 

apt-get install nginx

    ①配置nginx 

  • 修改/etc/nginx/sites-available/default

     

location ~ \.php$ {
                #include snippets/fastcgi-php.conf;
                #With php7.0-cgi alone:
                #fastcgi_pass 127.0.0.1:9000;
                #With php7.0-fpm:
                #fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                proxy_pass http://127.0.0.1:8080; # 添加此代码,指向动态服务器的ip地址及端口号
        }

    ②配置apache

  • 修改监听的端口号/etc/apache2/ports.conf
# Listen 80
Listen 8080

   ③重启服务

/etc/init.d/nginx reload
/etc/init.d/apache2 reload

  至此: 带php后缀的 80端口 直接指向apache,其他从nginx配置走。

 

6、安装 php-fpm

apt-get install php-fpm

  更新 php-fpm配置

// 改php-fpm配置文件

vim /etc/php/7.0/fpm/pool.d/www.conf

// 找到  listen = 

// tcp方式 (现在用的是tcp)
listen = 127.0.0.1:9000
//  socket方式
listen = /run/php/php7.0-fpm.sock

//  测试是否有误,显示successful即无误
sudo php-fpm7.0 -t

// 重启php-fpm
sudo service php7.0-fpm restart

7、配置apache2 链接 php-fpm

  加载模块
  apache用php-fpm方式要加载两个模块mod_proxy.somod_proxy_fcgi.so,先要Load这两个模块。

ln -s /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-enabled/proxy.conf
ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/proxy.load
ln -s /etc/apache2/mods-available/proxy_fcgi.load /etc/apache2/mods-enabled/proxy_fcgi.load
vim /etc/apache2/sites-available/000-default.conf

// 在<VirtualHost *:8080>内加上
// 这里IfModule 意思是当检测到加载了mod_proxy模块,才执行里面的内容,笔者认为应该要加上mod_proxy_fcgi.c的,但没找到写两个模块的写法..
<IfModule mod_proxy.c>
    ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/data/www/$1
    DirectoryIndex /index.php index.php
</IfModule>
// 测试是否配置正确 success为正确
apache2 -t 
// 重启apache
service apache2 restart

 8、部署了 laravel之后的  nginx配置

 

location ^~ /public/ {
    #    include snippets/fastcgi-php.conf;
    #
    #    # With php7.0-cgi alone:
    #    fastcgi_pass 127.0.0.1:8080;
    #    # With php7.0-fpm:
    #    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        proxy_pass http://127.0.0.1:8080; # 添加此代码,指向动态服务器的ip地址及端口号
    }

然后,发现服务器不打印错误 555

// 在  data/www 下开启文件访问权限

sudo chmod -R 777 项目名

 9、开启curl

   1、通过命令搜索可用扩展:

apt-cache search curl

  2、安装

apt-get install php7.0-curl

       3、重启apache

service apache2 restart

 10、安装php7.0-mysql 驱动

apt-get install php7.0-mysql

 

posted @ 2019-01-09 00:38  MvloveYouForever  阅读(229)  评论(0编辑  收藏  举报