• 部署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
  • 相关阅读:
    php静态调用非静态方法
    phalcon 框架3.0更新时报错
    centos7.5更换docker-ce镜像源
    腾讯云更换镜像源遇到的坑
    php cli模式下调试
    审查php.ini自动分析程序
    docker WARNING: IPv4 forwarding is disabled. Networking will not work.
    git常用命令,制作缩写命令
    学习GRPC(一) 简单实现
    mac与linux服务器之间使用ssh互通有无
  • 原文地址:https://www.cnblogs.com/Mvloveyouforever/p/10242196.html
Copyright © 2020-2023  润新知