zoukankan      html  css  js  c++  java
  • LNMP环境搭建

    一、安装前
    1. 更新系统软件:
    yum update
    2. 查看是否已安装wget:
    rpm -qa wget
    否则安装:
    yum install wget
    3. 查看是否已安装编译器:
    rpm -qa gcc
    否则安装:
    yum install gcc gcc-c++
    二、安装Nginx
    1. 安装nginx依赖包
    nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法:
    yum -y install pcre pcre-devel
    nginx的各种模块中需要使用gzip压缩:
    yum -y install zlib zlib-devel
    安全套接字层密码库:
    yum -y install openssl openssl-devel
    2. 下载nginx包并解压(到/usr/local/src目录中)
    cd /usr/local/src
    wget http://nginx.org/download/nginx-1.12.2.tar.gz
    tar -zxvf nginx-1.12.2.tar.gz
    3. 编译安装(到/usr/local/nginx目录中)
    cd nginx-1.12.2
    ./configure --prefix=/usr/local/nginx
    make
    make install
    4. 创建并设置nginx运行账号:
    groupadd nginx
    useradd -M -g nginx -s /sbin/nologin nginx
    cd /usr/local/nginx/conf
    vim nginx.conf,设置user参数如下:
    user nginx nginx
    其他配置参数暂时无需改动。
    5. 设置nginx为系统服务
    vim /lib/systemd/system/nginx.service
    文件内容:
    [Unit]
    Description=nginx
    After=network.target
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s stop
    PrivateTmp=true
    [Install]
    WantedBy=multi-user.target
    6. 设置nginx开机自启动
    systemctl enable nginx.service
    7. 开启nginx服务:
    systemctl start nginx.service
    查看nginx是否启动成功:
    ps aux | grep nginx
    在虚拟机浏览器中访问测试:
    http://localhost
    出现以下界面则表示可以成功访问:
    8. 防火墙开放80端口(nginx默认使用80端口,可在nginx.conf中配置,若无需进行远程访问则不需要开放端口)
    永久开放80端口:
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    重启防火墙:
    firewall-cmd --reload
    查看防火墙开启状态:
    systemctl status firewalld
    查看80端口是否开放成功:
    firewall-cmd --zone=public --query-port=80/tcp
    可在windows宿主主机浏览器直接访问虚拟机ip测试是否可以成功访问。
    三、安装Mysql
    1. 卸载已有mysql
    查看是否已安装mysql:
    rpm -qa mysql
    有则卸载:
    rpm -e --nodeps 文件名称
    是否存在与mysql相关的文件或目录:
    whereis mysql
    是则删除。
    查看是否存在mariadb:
    rpm -qa | grep mariadb
    存在则卸载:
    rpm -e --nodeps 文件名 //文件名是上一个命令查询结果
    存在/etc/my.cnf,则需要先删除:
    rm /etc/my.cnf
    2. 安装编译mysql需要的依赖包
    yum install libevent* libtool* autoconf* libstd* ncurse* bison* openssl*
    3. 安装cmake(mysql5.5之后需要用cmake支持编译安装)
    查看是否已安装cmake:
    rpm -qa cmake
    没有则下载编译安装:
    cd /usr/local/src
    wget http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz
    mysql8安装包(https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz)
    tar -xf cmake-2.8.12.1.tar.gz
    cd cmake-2.8.12.1
    ./configure
    make
    make install
    检查cmake是否安装成功:
    cmake --version
    4. 下载mysql包并解压(到/usr/local/src目录)
    cd /usr/local/src
    wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.38.tar.gz
    tar -zxvf mysql-5.6.38.tar.gz
    5. 编译安装(到/usr/local/mysql目录)
    cd mysql-5.6.38
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
    make(此过程需花费大概20-30分钟)
    make install
    6. 配置mysql
    groupadd mysql
    useradd -M -g mysql -s /sbin/nologin mysql
    chown -R mysql:mysql /usr/local/mysql
    7. 初始化配置
    cd /usr/local/mysql/scripts
    ./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
    8. 设置mysql为系统服务
    vim /lib/systemd/system/mysql.service
    文件内容:
    [Unit]
    Description=mysql
    After=network.target
    [Service]
    Type=forking
    ExecStart=/usr/local/mysql/support-files/mysql.server start
    ExecStop=/usr/local/mysql/support-files/mysql.server stop
    ExecRestart=/usr/local/mysql/support-files/mysql.server restart
    ExecReload=/usr/local/mysql/support-files/mysql.server reload
    PrivateTmp=true
    [Install]
    WantedBy=multi-user.target
    9. 设置mysql服务开机自启动
    systemctl enable mysql.service
    10. 启动mysql
    systemctl start mysql.service
    若是启动失败:
    直接使用/usr/local/mysql/support-files/mysql.server restart启动可以看到详细错误原因:
    若是这个原因,/var/lib/mysql这个目录(用于存放mysql.sock)不存在的话,手动创建就好了:
    mkdir /var/lib/mysql
    chown -R mysql:mysql /var/lib/mysql
    再次启动,成功了!
    查看是否启动成功:
    ps aux | grep mysql
    11. 登录mysql并设置root密码:
    /usr/local/mysql/bin/mysql -u root
    set password=password('123456');
    登陆时报错:Can't connect to local MySQL server through socket '/tmp/mysql.sock'
    遇到这种错误,可以用ps aux | grep mysql 查看mysqld_safe进程的mysql.sock文件在哪里,然后做个软链接到tmp/mysql.sock (也可查看/etc/my.cnf文件里的socket文件的位置,这是mysql服务器启动时创建sock文件的位置)
    或者也可以/etc/my.cnf文件里加上:
    [client]
    socket=/var/lib/mysql/mysql.sock
    注意:如果使用./bin/mysqld --initialize --user=mysql初始化命令,记得将密码记下。
    [root@localhost mysql]# ./bin/mysqld --initialize --user=mysql
    2018-12-06T08:35:05.453064Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
    2018-12-06T08:35:05.453161Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 8164
    2018-12-06T08:35:07.508789Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: sW
    2018-12-06T08:35:08.506292Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server has completed
    四、安装PHP
    1. 安装php依赖包
    yum install 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
    若提示yum中没有可用的软件包libmcrypt和libmcrypt-devel,则需要手动编译安装,可以先在windows宿主主机中前往libmcrypt官网下载然后使用rz指令将包上传至centos7进行编译安装。我下载的包为libmcrypt-2.5.8.tar.gz:
    tar -zxvf libmcrypt-2.5.8.tar.gz
    cd libmcrypt-2.5.8
    ./configure --prefix=/usr/local/libmcrypt
    make
    make install
    2. 下载php包并解压
    cd /usr/local/src
    在windows上前往php官网下载php-7.2.0包,然后使用rz指令将下载好的php安装包上传到centos7上,解压:
    tar -zxvf php-7.2.0.tar.gz
    3. 编译安装(到/usr/local/php目录)
    cd php-7.2.0
    ./configure --prefix=/usr/local/php --disable-fileinfo --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-curl --enable-ftp --with-gd --with-xmlrpc --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --enable-mbstring --with-mcrypt=/usr/local/libmcrypt --enable-zip --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql-sock=/var/lib/mysql/mysql.sock --without-pear --enable-bcmath
    (注意:--with-mcrypt参数指定的是libmcrypt的安装目录。Php7不再使用mysql的库来支持mysql的连接,而是启用了mysqlnd来支持,所以php7的编译已经不再使用--with-mysql参数指定mysql的安装位置了,若想支持mysql,需要设置--enable-mysqlnd、--with-mysqli和--with-pdo-mysql=mysqlnd参数,--with-mysql-sock指定的是编译mysql时-DMYSQL_UNIX_ADDR参数指定的文件)
    make(此过程需花费大概20分钟)
    make install
    4. 将php包解压目录中的配置文件放置到正确位置(configure命令中的--with-config-file-path设置的位置)
    cp php.ini-development /etc/php.ini
    5. 创建并设置php-fpm运行账号
    groupadd www-data
    useradd -M -g www-data -s /sbin/nologin www-data
    cd /usr/local/php/etc
    cp php-fpm.conf.default php-fpm.conf
    vim php-fpm.conf
    发现搜索不到“user”(设置运行账号的位置),但发现文件的最后一行:
    所以:
    cd php-fpm.d
    cp www.conf.default www.conf(否则include匹配不到文件)
    vim www.conf
    搜索“user”设置运行账号:
    user=www-data
    group=www-data
    6. 配置nginx支持php
    vim /usr/local/nginx/conf/nginx.conf
    修改完成之后记得重启nginx服务:
    systemctl start nginx.service
    7. 设置php-fpm为系统服务:
    vim /etc/systemd/system/php-fpm.service
    文件内容:
    [Unit]
    Description=php-fpm
    After=network.target
    [Service]
    Type=forking
    ExecStart=/usr/local/php/sbin/php-fpm
    PrivateTmp=True
    [Install]
    WantedBy=multi-user.target
    8. 设置php-fpm服务开机自启动:
    systemctl enable php-fpm.service
    9. 启动php-fpm:
    systemctl start php-fpm.service
    查看是否启动成功:
    ps aux | grep php-fpm
    10.设置php-fpm开机启动
    进入到你到php源码包(之前到章节我将php文件wget到了/usr/local/src/目录下)
    cp /usr/local/src/php-7.2.0/sapi/fpm/init.d.php-fpm /ect/init.d/php-fpm
    chmod 755 /etc/init.d/php-fpm #分配权限
    service php-fpm start #启动
    chkconfig php-fpm on #开机启动
    ps aux |grep php-fpm #检查是否启动
    netstat -ant |grep 9000
    在Linux下安装PHP,源代码方式安装,总需要配置很多参数。这里列出常用配置参数,并详细用中文解释说明了。
    编译PHP的时候慎用 –with-curlwrappers参数
    ./configure
    --prefix=/usr/local/PHP php 安装目录
    --with-apxs2=/usr/local/apache/bin/apxs 表示使用apache2.0以上版本,apxs表示使用的apache1.0版本
    --with-config-file-path=/usr/local/PHP/etc 指定php.ini位置
    --with-MySQL=/usr/local/mysql mysql安装目录,对mysql的支持
    --with-MySQLi=/usr/local/mysql/bin/mysql_config mysqli文件目录,优化支持
    --enable-safe-mode 打开安全模式
    --enable-ftp 打开ftp的支持
    --enable-zip 打开对zip的支持
    --with-bz2 打开对bz2文件的支持
    --with-jpeg-dir 打开对jpeg图片的支持
    --with-png-dir 打开对png图片的支持
    --with-freetype-dir 打开对freetype字体库的支持
    --without-iconv 关闭iconv函数,种字符集间的转换
    --with-libXML-dir 打开libxml2库的支持
    --with-XMLrpc 打开xml-rpc的c语言
    --with-zlib-dir 打开zlib库的支持
    --with-gd 打开gd库的支持
    --enable-gd-native-ttf 支持TrueType字符串函数库
    --with-curl 打开curl浏览工具的支持
    --with-curlwrappers 运用curl工具打开url流
    --with-ttf 打开freetype1.*的支持,可以不加了
    --with-xsl 打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件
    --with-gettext 打开gnu 的gettext 支持,编码库用到
    --with-pear 打开pear命令的支持,PHP扩展用的
    --enable-calendar 打开日历扩展功能
    --enable-mbstring 多字节,字符串的支持
    --enable-bcmath 打开图片大小调整,用到zabbix监控的时候用到了这个模块
    --enable-sockets 打开 sockets 支持
    --enable-exif 图片的元数据支持
    --enable-magic-quotes 魔术引用的支持
    --disable-rpath 关闭额外的运行库文件
    --disable-debug 关闭调试模式
    --with-mime-magic=/usr/share/file/magic.mime 魔术头文件位置
    CGI方式安装才用的参数
    --enable-fpm 打上PHP-fpm 补丁后才有这个参数,CGI方式安装的启动程序
    --enable-fastCGI 支持fastcgi方式启动PHP
    --enable-force-CGI-redirect 同上 ,帮助里没有解释
    --with-ncurses 支持ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库
    --enable-pcntl freeTDS需要用到的,可能是链接mssql 才用到
    mhash和mcrypt算法的扩展
    --with-mcrypt 算法
    --with-mhash 算法
    --with-gmp
    --enable-inline-optimization
    --with-openssl openssl的支持,加密传输时用到的
    --enable-dbase
    --with-pcre-dir=/usr/local/bin/pcre-config perl的正则库案安装位置
    --disable-dmalloc
    --with-gdbm dba的gdbm支持
    --enable-sigchild
    --enable-sysvsem
    --enable-sysvshm
    --enable-zend-multibyte 支持zend的多字节
    --enable-mbregex
    --enable-wddx
    --enable-shmop
    --enable-soap

  • 相关阅读:
    移动端常用状态
    css 动画
    jQuery源码解析 -- 概述
    Bearer Token && JWT --- 深入理解令牌机制
    字符串 ----> switch-case 语句
    Vuejs选项: provide/inject
    本地windows系统-》windows云服务器文件上传
    CSS基础点
    函数的调用 与 this
    两个有意思的网站
  • 原文地址:https://www.cnblogs.com/gentlemanwuyu/p/10600926.html
Copyright © 2011-2022 走看看