美文网首页
Virtualbox Centos 7 LNMP环境配置(二)

Virtualbox Centos 7 LNMP环境配置(二)

作者: 潇洒小菜鸟 | 来源:发表于2018-09-08 23:53 被阅读0次
    首先更新系统软件 yum update

    安装nginx

    1.安装nginx源

    yum localinstall http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    

    2.安装nginx

     yum install nginx
    

    3.启动nginx

    systemctl start nginx.service
    

    4.访问http://你的ip/ , 如果成功安装会出来nginx默认的欢迎界面

    安装MySQL5.7.

    1.安装mysql源

    yum localinstall  http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
    

    2.安装mysql

    yum install mysql-community-server
    

    确认一下mysql的版本,有时可能会提示mysql5.6

    3.安装mysql的开发包,以后会有用

    yum install mysql-community-devel
    

    4.启动mysql

    systemctl start  mysqld.service
    

    5.查看mysql启动状态

    systemctl status  mysqld.service
    

    出现pid,证明启动成功

    6.获取mysql默认生成的密码

    grep 'temporary password '/var/log/mysqld.log
    

    这就是生成的密码

    2015-12-05T05:41:09.104758Z 1 [Note] A temporary password is generated for[root@localhost](https://portal.cdn.thinkcmf.com/mailto:root@localhost?e=1536395873&token=XdiS6FfUnX2ev_FbtjEiJX2R0gS_JzfiabXpCOLW:tUoiQbfNZoeJff1GOa1yV1o0fQY=): %G1Rgns!dD!v
    
    7.换成自己的密码
    mysql -uroot -p
    

    Enter password:输入上面的密码

    成功输入后进入一下步,这里你估计会输入 好几次才进去

    8. 更换密码
    mysql> ALTER USER'root'@'localhost'IDENTIFIED BY'MyNewPass4!';(可能报错)
    

    或者这样改

    mysql> set password for root@localhost = password('Mysqlpassword1!');
    

    这个密码一定要足够复杂,不然会不让你改,提示密码不合法;

    9.退出mysql;
     mysql> quit;
    
    10.用新密码再登录,试一下新密码
    mysql -uroot -p
    

    Enter password:输入你的新密码

    11.确认密码正确后,退出mysql;
     mysql> quit;
    

    编译安装php7.0.0

    1.下载php7源码包
    cd /root & wget -O php7.tar.gzhttp://cn2.php.net/get/php-7.0.1.tar.gz/from/this/mirror
    
    2.解压源码包
    tar -xvf php7.tar.gz
    
    3.
     cd php-7.0.1
    
    4.安装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-develreadlinereadline-devel libxslt libxslt-devel
    
    5.编译配置,这一步我们会遇到很多configure error,我们一一解决,基本都是相关软件开发包没有安装导致
    ./configure \                                                                                                  --prefix=/usr/local/php \                                                                                --with-config-file-path=/etc \
    --enable-fpm \
    --with-fpm-user=nginx  \
    --with-fpm-group=nginx \
    --enable-inline-optimization \
    --disable-debug \
    --disable-rpath \                                                                                        -----enable-shared  \
    --enable-soap \
    --with-libxml-dir \
    --with-xmlrpc \
    --with-openssl \
    --with-mcrypt \
    --with-mhash \
    --with-pcre-regex \
    --with-sqlite3 \
    --with-zlib \
    --enable-bcmath \
    --with-iconv \
    --with-bz2 \
    --enable-calendar \
    --with-curl \
    --with-cdb \
    --enable-dom \
    --enable-exif \
    --enable-fileinfo \
    --enable-filter \
    --with-pcre-dir \
    --enable-ftp \
    --with-gd \
    --with-openssl-dir \
    --with-jpeg-dir \
    --with-png-dir \
    --with-zlib-dir  \
    --with-freetype-dir \
    --enable-gd-native-ttf \
    --enable-gd-jis-conv \
    --with-gettext \
    --with-gmp \
    --with-mhash \
    --enable-json \
    --enable-mbstring \
    --enable-mbregex \
    --enable-mbregex-backtrack \
    --with-libmbfl \
    --with-onig \
    --enable-pdo \
    --with-mysqli=mysqlnd \
    --with-pdo-mysql=mysqlnd \
    --with-zlib-dir \
    --with-pdo-sqlite \
    --with-readline \
    --enable-session \
    --enable-shmop \
    --enable-simplexml \
    --enable-sockets  \
    --enable-sysvmsg \
    --enable-sysvsem \
    --enable-sysvshm \
    --enable-wddx \
    --with-libxml-dir \
    --with-xsl \
    --enable-zip \
    --enable-mysqlnd-compression-support \
    --with-pear \
    --enable-opcache
    
    这里可能会出现一些错误(configure error):
    1.configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no

    解决办法是把--enable-opcache改为--enable-opcache=no,重新./configure \

    2.configure: error: xml2-config not found. Please check your libxml2 installation.

    解决:

    yum install libxml2 libxml2-devel
    
    3.configure: error: Cannot find OpenSSL's

    解决:

    yum install openssl openssl-devel
    
    4.configure: error: Please reinstall the BZip2 distribution

    解决:

     yum install bzip2 bzip2-devel
    
    5. configure: error: Please reinstall the libcurl distribution - easy.h should be in /include/curl/

    解决:

    yum install libcurl libcurl-devel
    
    6. If configure fails try --with-webp-dir= configure: error: jpeglib.h not found.

    解决:

    yum install libjpeg libjpeg-devel
    
    7. If configure fails try --with-webp-dir=checking for jpeg_read_header in -ljpeg... yesconfigure: error: png.h not found.

    解决:

    yum install libpng libpng-devel
    
    8. If configure fails try --with-webp-dir=checking for jpeg_read_header in -ljpeg... yeschecking for png_write_image in -lpng... yes If configure fails try --with-xpm-dir=configure: error: freetype-config not found.

    解决:

    yum install freetype freetype-devel
    
    9. configure: error: Unable to locate gmp.h

    解决:

    yum install gmp gmp-devel
    
    10. configure: error: mcrypt.h not found. Please reinstall libmcrypt.

    解决:

    yum install libmcrypt libmcrypt-devel
    
    11.configure: error: Please reinstall readline - I cannot find readline.h

    解决:

    yum installreadlinereadline-devel
    
    12. configure: error: xsltconfig not found. Please reinstall the libxslt >= 1.1.0 distribution

    解决:

    yum install libxslt libxslt-devel
    
    13./home/levi/soft/php-5.6.8/ext/zip/lib/zipint.h:118:2: error: #error unsupported size of off_t

    error unsupported size of off_t

    ^
    make: *** [ext/zip/lib/zip_add.lo] 错误 1

    解决:

    vi /etc/ld.so.conf.d/local.conf //创建local.conf
    /usr/local/lib //添加输入
    ldconfig -v //执行命令
    

    然后需要进行make clean,重新configure

    6.编译与安装

    make && make install
    

    这里要make好久,要耐心一下

    7.添加 PHP 命令到环境变量

    vim /etc/profile
    

    在末尾加入

    PATH=$PATH:/usr/local/php/bin
    export PATH
    

    要使改动立即生效执行

    ./etc/profile
    

    source /etc/profile
    

    查看环境变量

    echo $PATH
    

    查看php版本

    php -v
    

    8.配置php-fpm

    cp php.ini-production /etc/php.ini
    
    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf$cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
    
    cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    
    chmod +x /etc/init.d/php-fpm
    
    9.启动php-fpm
     /etc/init.d/php-fpm start
    

    可能会出现以下错误:

    ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use 
    

    这是9000的端口被占用了,解决方法:

    netstat -lntup | grep 9000    #查找是否9000端口被占用
    killall php-fpm         #杀死进程,killall不能用时,centos用  “yum install psmisc”安装killall
    /etc/init.d/php-fpm start   #开始php-fpm服务
    

    配置nginx虚拟机,绑定域名

    1.修改配置
     vim /etc/nginx/conf.d/default.conf
    

    把下面的内容复制到default.conf

    server{
        listen 80;
        server_name  _;   #你的域名
        root /var/www/html/; # 该项要修改为你准备存放相关网页的路径
        location / {
            index  index.php index.html index.htm;
             #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
             if (!-e $request_filename)
             {
                #地址作为将参数rewrite到index.php上。
                rewrite ^/(.*)$ /index.php/$1;
                #若是子目录则使用下面这句,将subdir改成目录名称即可。
                #rewrite ^/subdir/(.*)$ /subdir/index.php/$1;
             }
        }
        #proxy the php scripts to php-fpm
        location ~ \.php {
                include fastcgi_params;
                ##pathinfo支持start
                #定义变量 $path_info ,用于存放pathinfo信息
                set $path_info "";
                #定义变量 $real_script_name,用于存放真实地址
                set $real_script_name $fastcgi_script_name;
                #如果地址与引号内的正则表达式匹配
                if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                        #将文件地址赋值给变量 $real_script_name
                        set $real_script_name $1;
                        #将文件地址后的参数赋值给变量 $path_info
                        set $path_info $2;
                }
                #配置fastcgi的一些参数
                fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
                fastcgi_param SCRIPT_NAME $real_script_name;
                fastcgi_param PATH_INFO $path_info;
                ###pathinfo支持end
            fastcgi_intercept_errors on;
            fastcgi_pass   127.0.0.1:9000;
        }
        
        location ^~ /data/runtime {
        return 404;
        }
        
        location ^~ /application {
        return 404;
        }
        
        location ^~ /simplewind {
        return 404;
        }
    }
    
    2.重启nginx
    systemctl reload nginx.service
    
    3.测试php脚本
    vim /var/www/html/index.php
    

    把下面的代码复制到这个文件 index.php

    <?php
      echo 'helllo, my first php about nginx';
    ?>
    

    http://ip:端口/index.php 查看页面。

    相关文章

      网友评论

          本文标题:Virtualbox Centos 7 LNMP环境配置(二)

          本文链接:https://www.haomeiwen.com/subject/nfdlgftx.html