• LNMP/LAMP


    LNMP/LAMP

    环境:

    名称 Linux Nginx MySQL PHP Apache
    版本 Centos7 nginx-1.14.1 mysql-5.6.25 php-5.6.36 Apache/2.4.6

    安装nginx所需的依赖

    • gcc安装

      安装 nginx 需要先将官网下载的源码进行编译,而编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

      yum install -y gcc-c++

    • PCRE pcre-devel 安装

      PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

      yum install -y pcre pcre-devel

    • zlib 安装

      zlib 库提供了很多种压缩和解压缩的方式 nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库

      yum install -y zlib zlib-devel

    • OpenSSL 安装

      OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
      nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

      yum install -y openssl openssl-devel

    初始化nginx(配置)

    1. 解压完成后进入解压目录

      cd /app/tool/nginx-1.14.1

    2. 配置
      其实在 nginx-1.14.0 版本中你就不需要去配置相关东西,默认就可以了。当然,如果你要自己配置目录也是可以的。

      • 默认配置(推荐)

        编译

        ./configure

    编译安装

    1. 执行

      make && make install

    2. 输出结果最后一行:

      make[1]: Leaving directory `/app/tool/nginx-1.14.1'
      
    3. 查找安装路径

      whereis nginx

      输出结果:

      nginx: /usr/local/nginx
      

      启动与重启

    4. 启动

      • 进入sbin目录

        cd /usr/local/nginx/sbin

      • 启动

        ./nginx

    5. 停止

      • 先查出nginx进程id再使用kill命令强制杀掉进程

        ./nginx -s stop

      • 停止:等待nginx进程处理任务完毕进行停止

        ./nginx -s quit

    6. 重启

      先停止再启动

      ./nginx -s quit

      ./nginx

    7. 重载配置文件

      当 ngin x的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用-s reload不用先停止 ngin x再启动 nginx 即可将配置信息在 nginx 中生效,如下:

      ./nginx -s reload

    编译安装php

    yum install libxml2-devel
    ./configure --enable-fpm --with-mysql --with-mysqli --with-pdo-mysql  --enable-mbstring
    make
    make install
    cp php.ini-development /usr/local/php/php.ini
    cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
    cp sapi/fpm/php-fpm /usr/local/bin
    vim /usr/local/php/php.ini
    # 编辑配置文件
    cgi.fix_pathinfo=0
    # 保存退出
    # 启动fpm
    /usr/local/bin/php-fpm
    # 编辑配置文件
    # index 添加 index.php
     location / {
                root   html;
                index  index.php index.html index.htm;
            }
    # 取消注释 修改为 $document_root$fastcgi_script_name
     location ~ .php$ {
                root           html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }
    # 保存退出
    # 测试php
    vim html/index.php
    <?php
            phpinfo();
    ?>
    # 保存退出
    # 重新加载配置文件
    ./nginx -s reload
    # 访问 172.16.0.6/index.php可以看到php相关信息
    

    编译安装mysql

     yum install -y ncurses-devel automake autoconf bison libtool-ltdl-devel
     yum install cmake
     groupadd mysql
     useradd -s /sbin/nologin -g mysql -M mysql
     mkdir -p /opt/mysql/data
     mkdir -p /opt/mysql/tmp
     cd /opt/mysql-5.6.25
          cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql -DMYSQL_DATADIR=/opt/mysql/data -DMYSQL_UNIX_ADDR=/opt/mysql/tmp/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ZLIB=bundled -DWITH_SSL=bundled -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DENABLE_DOWNLOADS=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_TCP_PORT=3306 -DWITH_DEBUG=0      
          make && make install
          /opt/mysql/scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql
          #授权
          chown -R mysql:mysql /opt/mysql/
          cp -f /opt/mysql/support-files/my*.cnf /etc/my.cnf
          cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
          # 加权限
          chmod +x /etc/init.d/mysqld
        # 自启
          chkconfig --add mysqld
          chkconfig mysqld on
          #添加环境
          echo "export PATH=$PATH:/opt/mysql/bin/" >>/etc/profile
          source /etc/profile
    # 启动mysql服务
    /etc/init.d/mysqld start   
    # 连接
    mysql -uroot -p
    (回车)
    #修改密码
    mysql> use mysql; 
    mysql> update user set password=password('ci123vm') where user='root' and host='localhost'; 
    mysql> flush privileges; 
    # 远程连接授权
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    # 配置远程连接密码
    set password for root@'%' = password('ci1233vm');
    

    phpMyAdmin安装配置

    解压到nginx/html目录:

    xz -d phpMyAdmin-4.9.0.1-all-languages.tar.xz
    tar -xvf phpMyAdmin-4.9.0.1-all-languages.tar 
    mv phpMyAdmin-4.9.0.1-all-languages/ /usr/local/nginx/html/
    

    进入解压目录,进行配置:

    cp config.sample.inc.php config.inc.php
    

    编辑如下配置:

    img

    登录:

    http://172.16.0.6/phpMyAdmin-4.9.0.1-all-languages/index.php

    补充:

    php模块缺失可以用phpize命令在源码目录的ext/下的对应模块下执行:

    /usr/local/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    或:
    ./configure --with-php-config=/usr/local/bin/php-config --with-jpeg-dir --with-png-dir --with-freetype-dir --with-zlib-dir --with-gd
    make && make install
    

    执行上述命令后,模块就会被编译到配置文件定义的拓展目录下,配置文件路径拓展路径相关信息都可以通过phpinfo()函数在界面上查看:

    <?php 
        phpinfo();
    ?>
    

    httpd配置整合php:

    # 加载php模块 整合php-fpm
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    
    # 开启虚拟主机模块
    LoadModule vhost_alias_module modules/mod_vhost_alias.so
    # 加载虚拟主机配置文件
    Include conf/extra/httpd-vhosts.conf
    # 最后加一个
    <FilesMatch .php$>
    SetHandler "proxy:fcgi://127.0.0.1:9000"
    </FilesMatch>                  
    

    httpd-vhosts.conf示例:

    <VirtualHost *:80>
            ServerAdmin noc@corp-ci.com
            #ServerAdmin 192.168.3.227
            DocumentRoot /opt/news
            ServerName news.ci123.com
            #ServerName 192.168.3.227
    
            ErrorLog logs/news.xxx.com-error_log
            #CustomLog "|/usr/local/sbin/cronolog /opt/apache/logs/news.opt.com-access.%Y-%m-%d" combined_log env=!donotlog
            <Directory /opt/news>
                    Options FollowSymLinks
                    allowoverride None
                    Require all granted
    
                    RewriteEngine On
                    RewriteBase /
                    RewriteRule ^index.php$ - [L]
                    RewriteCond %{REQUEST_FILENAME} !-f
                    RewriteCond %{REQUEST_FILENAME} !-d
                    RewriteRule . /index.php [L]
                    RewriteRule ^/article/[0-9]+.html$ /article.php?id=$1 [L]
            </Directory>
    
            Alias /social /opt/news/social
            <Directory /opt/news/social>
                    RewriteEngine On
                    RewriteBase /social
    
                    RewriteRule ^index.php$ - [L]
                    RewriteCond %{REQUEST_FILENAME} !-f
                    RewriteCond %{REQUEST_FILENAME} !-d
                    RewriteRule . /social/index.php [L]
            </Directory>
    </VirtualHost>
    

    最近发现一款使用 Go 语言开发的 Web 服务器Caddy。其配置更为简洁,并可以自动申请及配置 SSL 证书(推荐)。

  • 相关阅读:
    html5分割上传实现超大文件无插件网页上传问题
    html5分割上传实现超大文件无插件网页上传方法
    spring JDBCTemplate 批量操作
    spring JDBCTemplate 查询操作
    spring JDBCTemplate 修改和删除
    spring JDBCTemplate 添加操作
    spring JDBCTemplate 概念和准备
    spring AOP 基于配置文件
    spring AOP 基于注解
    使用 流量统计 定位网络故障
  • 原文地址:https://www.cnblogs.com/yanshaoshuai/p/12103536.html
Copyright © 2020-2023  润新知