精华内容
下载资源
问答
  • Linux搭建LNMP环境

    千次阅读 2019-06-15 15:26:48
    Linux搭建LNMP环境必备工具lrzszVIMgcc-c++wget挂载磁盘NginxMySQLPHP系统部署 必备工具 lrzsz yum install -y lrzsz lrzsz(Linux服务器和window互传文件工具) sz /文件名:将选定的文件发送(send)到本地...

    必备工具

    • lrzsz

    yum install -y lrzsz
    

    lrzsz(Linux服务器和window互传文件工具)
    sz /文件名:将选定的文件发送(send)到本地机器
    rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)

    • VIM

    rpm -qa|grep vim  #查询一个包是否被安装
    

    如果 vim 已经正确安装,会返回下面的三行代码:

    [root@centos]# rpm -qa |grep vim
    vim-minimal-7.0.109-6.el5
    vim-common-7.0.109-7.2.el5
    vim-enhanced-7.0.109-7.2.el5

    • gcc-c++

    yum -y install gcc-c++
    
    • wget

    yum -y install wget
    

    挂载磁盘

    查看磁盘使用

    fdisk -l
    

    格式化磁盘使用

    mkfs.xfs -f 磁盘名
    

    查看磁盘使用情况

    df -lh
    

    挂载容量最大的磁盘到/data,挂载磁盘命令:mount 磁盘名称 目录,例:

    mount /dev/vdb /data
    

    自动在开机时挂载磁盘:

    vim /etc/fstab
    

    在末行添加

    #磁盘名称            目录             磁盘格式      ----                 - - - -
    /dev/vdb             /data                xfs        defaults              1 1
    

    Nginx

    创建软件目录,方便管理

    mkdir -p /application/tools
    

    下载Nginx

    cd /application/tools
    wget http://nginx.org/download/nginx-1.14.0.tar.gz
    tar xf nginx-1.14.0.tar.gz
    

    安装Nginx依赖

    yum install -y pcre-devel openssl-devel
    

    pcre-devel 让nginx拥有正则的能力,rewrite等都需要正则匹配
    openssl-devel 让nginx拥有开启https的能力。

    创建Nginx管理用户

    useradd -s /sbin/nologin -M nginx
    

    编译配置Nginx

    cd /application/tools/nginx-1.14.0
    ./configure --prefix=/application/nginx-1.14.0 --user=nginx --group=nginx --with-http_stub_status_module  --with-http_ssl_module
    

    –prefix=/application/nginx-1.14.0 置编译安装目录
    –user=nginx 配置nginx的管理用户为nginx用户
    –group=nginx 配置nginx的管理组为nginx组
    –with-http_stub_status_module 配置使用Nginx的监控模块
    –with-http_ssl_module 配置应用认证模块(https需要此模块,需要openssl-devel依赖

    编译安装Nginx

    make && make install
    

    为Nginx安装目录创建软链接(方便以后管理)

    ln -s /application/nginx-1.14.0/ /application/nginx
    

    为Nginx命令创建软链接加进root环境变量(方便使用)

    ln -s /application/nginx/sbin/nginx /sbin/
    

    精简化Nginx配置文件

    sed -i "/^$/d;/#/d" /application/nginx/conf/nginx.conf
    

    添加systemctl启动脚本

    cat > /usr/lib/systemd/system/nginx.service << EOF
    [Unit]
    Description=nginx
    Documentation=http://nginx.org/en/docs/
    After=network.target remote-fs.target nss-lookup.target
    
    [Service]
    Type=forking
    ExecStartPre=/application/nginx/sbin/nginx -t -c /application/nginx/conf/nginx.conf
    ExecStart=/application/nginx/sbin/nginx -c /application/nginx/conf/nginx.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s QUIT $MAINPID
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    EOF
    

    启动Nginx

    nginx
    或者
    systemctl start nginx
    

    查看Nginx进程

     ps -ef | grep [n]ginx
     pgrep -lf nginx
    

    测试Nginx服务端口(80)

    ss -lnt | grep 80
    lsof -i:80
    netstat -lntup | grep nginx
    

    curl测试Nginx首页

    curl -s 本机IP
    

    有看到Welcome to nginx!就是成功了

    把Nginx添加到启动项

    cd /etc/rc.d && chmod +x rc.local && vim rc.local
    

    在末尾添加以下命令:

    #开机启动Nginx
    nginx
    

    重新加载nginx配置
    nginx -s reload

    MySQL

    安装MySQL依赖环境

    yum install  -y  ncurses-devel libaio-devel autoconf numactl
    

    ncurses-devel提供字符终端处理库
    libaio-devel包的作用是为了支持同步I/O

    下载MySQL

    cd /application/tools
    wget http://tel.mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
    

    删除mariadb组件

    rpm -qa | grep mariadb
    [结果1]
    [结果2]
    ……
    yum remove [结果1] [结果2] ……
    

    下载依赖环境

    yum install  -y  bison-devel ncurses-devel libaio-devel gcc gcc-c++ automake autoconf numactl
    

    解压MySQL5.7

    tar xf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz -C /application
    mv /application/mysql-5.7.25-linux-glibc2.12-x86_64  /application/mysql-5.7.25
    ln -s /application/mysql-5.7.25/ /application/mysql
    

    创建管理用户&&授权

    useradd -s /sbin/nologin -M mysql
    chown -R mysql.mysql /application/mysql-5.7.25/
    

    创建目录和文件并且分配属主和属组

    mkdir -p /data/mysql/{data,logs}
    touch /data/mysql/logs/{mysql-error.log,mysql-slow.log}
    chown -R mysql.mysql /data/mysql
    mkdir /var/run/mysql
    chown -R mysql.mysql /var/run/mysql
    

    初始化数据库

    /application/mysql/bin/mysqld --initialize-insecure --basedir=/application/mysql/ --datadir=/data/mysql/data --user=mysql
    

    –initialize-insecure选项参数可以不自动生成初始root密码。

    复制脚本及PATH变量赋值

    \cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
    chmod 700 /etc/init.d/mysqld
    echo 'PATH=$PATH:/application/mysql/bin' >> /etc/profile
    source /etc/profile
    

    编辑配置文件

    vim /etc/my.cnf
    
    [mysql]
    
    # CLIENT #
    port                           = 24824
    socket                         = /tmp/mysql.sock
    
    [mysqld]
    
    # GENERAL #
    user                           = mysql
    default-storage-engine         = InnoDB
    socket                         = /tmp/mysql.sock
    pid-file                       = /var/run/mysql/mysql.pid
    basedir                        = /application/mysql
    server-id                      = 1
    port                           = 24824
    default-time-zone              = '+08:00'
    
    # MyISAM #
    key-buffer-size                = 32M
    myisam-recover-options         = FORCE,BACKUP
    
    # SAFETY #
    max-allowed-packet             = 16M
    max-connect-errors             = 1000000
    skip-name-resolve
    #sql-mode                       = STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_VALUE_ON_ZERO
    sql-mode                       = ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_VALUE_ON_ZERO
    sysdate-is-now                 = 1
    innodb                         = FORCE
    secure-file-priv               = ''
    
    # DATA STORAGE #
    datadir                        = /data/mysql/data/
    
    # BINARY LOGGING #
    log-bin                        = /data/mysql/data/mysql-bin
    expire-logs-days               = 14
    binlog-format                  = mixed
    sync-binlog                    = 1
    #GTID:
    gtid-mode                      = on
    enforce-gtid-consistency       = on
    
    # CACHES AND LIMITS #
    tmp-table-size                 = 32M
    max-heap-table-size            = 32M
    query-cache-type               = 0
    query-cache-size               = 0
    max-connections                = 500
    thread-cache-size              = 50
    open-files-limit               = 65535
    table-definition-cache         = 1024
    table-open-cache               = 200
    
    # INNODB #
    innodb-flush-method            = O_DIRECT
    innodb-log-files-in-group      = 2
    innodb-log-file-size           = 256M
    innodb-flush-log-at-trx-commit = 1
    innodb-file-per-table          = 1
    innodb-buffer-pool-size        = 8G
    
    # LOGGING #
    log-error                      = /data/mysql/logs/mysql-error.log
    log-queries-not-using-indexes  = 1
    slow-query-log                 = 1
    slow-query-log-file            = /data/mysql/logs/mysql-slow.log
    

    启动MySQL

    /etc/init.d/mysqld start
    

    初始化root密码

    mysql_secure_installation
    ==========================================================================
    secure enough. Would you like to setup VALIDATE PASSWORD plugin?
    
    Press y|Y for Yes, any other key for No: n
    
    New password: <==此处输入新密码(如果低于八位数密码,稍后会有系统提示)
    
    Re-enter new password: <==此处重复输入新密码
    
    Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
    Success.
    Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n
    
    Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
     - Dropping test database...
    Success.
    
     - Removing privileges on test database...
    Success.
    
    Reloading the privilege tables will ensure that all changes
    made so far will take effect immediately.
    
    Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
    Success.
    
    All done! 
    
    

    把MySQL添加进启动项

    cd /etc/rc.d && chmod +x rc.local && vim rc.local
    

    在末尾添加以下命令

    #开机启动mysql
    mkdir -p /var/run/mysql
    chown -R mysql.mysql /var/run/mysql
    /etc/init.d/mysqld start
    

    关闭防火墙

    查看防火墙是否开启

    firewall-cmd --state
    

    如果是running的话,使用以下命令关闭防火墙

    systemctl stop firewalld.service #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动
    

    重启MySQL

    systemctl restart mysqld.service ,或者
    /etc/init.d/mysqld [stop|start|restart|reload]
    

    PHP

    添加webtatic的PHP的yum源

    yum install epel-release
    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
    

    安装PHP及PHP常用模块

    yum install -y php72w-fpm php72w-opcache php72w-mysql php72w-common php72w-cli php72w-devel php72w-mbstring php72w-xml
    

    启动PHP

    systemctl start php-fpm
    或
    php-fpm     ##使用了此方法启动,在使用systemctl关闭php-fpm就会报错,此时如果要重启php只能够使用kill
    

    检查端口与进程
    端口
    php默认启用9000端口,如果使用使用socket,那么php就不会再监听端口

    ss -lnt | grep 9000
    

    进程

    ps -ef | grep [p]hp
    或
    pgrep -lf php-fpm
    

    修改PHP的管理用户

    sed -i 's/apache/nginx/g' /etc/php-fpm.d/www.conf
    systemctl restart php-fpm
    ps -ef | grep [p]hp-fpm
    

    此时再查看,就发现php已更改启动用户为nginx

    把PHP添加到启动项

    cd /etc/rc.d && chmod +x rc.local && vim rc.local
    

    在末尾添加以下命令:

    #开机启动PHP
    systemctl start php-fpm.service   #centOS 7 使用
    service php-fpm start   #centOS 6 使用
    

    php.ini 参数参考

    date.timezone = "Asia/Shanghai"	时区设置
    max_execution_time = 1800	每个脚本的最大执行时间,单位秒
    pdo_mysql.default_socket = /tmp/mysql.sock	
    

    重启PHP

    systemctl restart php-fpm.service 
    或者
    service php-fpm restart 
    

    系统部署

    核对时区
    在进行下面的系统部署之前,务必使系统时间、MySQL时间、php时间与当地时间保持一致,即时区一致,比如都是东八区。
    查看系统时间

    date
    

    登录MySQL,查看MySQL时间

    mysql -uroot -p
    输入密码
    select now();
    

    查看php时间

    vim time.php
    <?php
    echo date('Y-m-d H:i:s',time());
    保存退出,然后执行
    php time.php
    

    LNMP环境搭建完成

    展开全文
  • 环境版本为 nginx 1.15.8 php 7.2.0 mysql 5.7.22 一、先安装Nginx 1、安装依赖包 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 2、下载并解压安装包 ...

    环境版本为

    • nginx 1.15.8

    • php 7.2.0

    • mysql  5.7.22

    一、先安装Nginx

    1、安装依赖包

    yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

    2、下载并解压安装包

    wget http://nginx.org/download/nginx-1.15.8.tar.gz #下载
    tar -xvf nginx-1.15.8.tar.gz #解压

    3.安装nginx

    cd nginx-1.15.8
    ./configure --prefix=/usr/local/nginx  --with-http_stub_status_module  --with-http_gzip_static_module --with-http_realip_module --with-http_su
    b_module  --with-http_ssl_module --with-http_realip_module  --with-http_sub_module  --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module  --with-http_slice_module
    make
    make install

    4、启动Nginx

    /usr/local/nginx/sbin/nginx

    5、访问域名

    二、安装PHP

    1、安装依赖

    yum install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel libzip-devel pcre-devel libxslt-devel*

    2、下载并解压安装包

    wget http://php.net/get/php-7.2.0.tar.gz/from/a/mirror
    tar -zxvf php-7.2.0.tar.gz

    3、安装PHP

    ./configure --prefix=/usr/local/php7.2.0 --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip
    make
    make install

    4、把PHP加入环境变量

    cp /usr/local/php7.2.0/bin/php /usr/local/bin/

    5、配置php-fpm启动文件

    • 复制一份php-fpm.conf 文件到etc下面
    • 更改一下默认配置文件的名称

         

    cp /root/php-7.2.0/sapi/fpm/php-fpm.conf /usr/local/php7.2.0/etc/php-fpm.conf
    mv /usr/local/php7.2.0/etc/php-fpm.d/www.conf.default /usr/local/php7.2.0/etc/php-fpm.d/www.conf
    vim /etc/init.d/php-fpm
    #!/bin/bash
    
    if [[ $1 = 'stop' ]];
    then
      kill -INT `cat /usr/local/php7.2.0/var/run/php-fpm.pid`
      echo -e "Stopping php-fpm is success"
    elif [[ $1 = 'start' ]];
    then
      /usr/local/php7.2.0/sbin/php-fpm
      echo -e "Starting php-fpm is success"
    elif [[ $1 = 'restart' ]];
    then
      kill -USR2 `cat /usr/local/php7.2.0/var/run/php-fpm.pid`
      echo -e "Restart php-fpm is success"
    else
      echo -e "Usage: /etc/init.d/php-fpm {start|stop|restart}"
    fi
    
    chmod +x php-fpm #给php-fpm 可执行的权限
    

    三、nginx配置访问php

    1、修改nginx的配置文件

    worker_processes        8;
    error_log               /usr/local/nginx-1.15.8/logs/error.log;
    pid                     logs/nginx.pid;
    
    worker_rlimit_nofile    60000;
    events {
    use                     epoll;
    worker_connections      10000;
    }
    
    http {
          include           mime.types;
          default_type      application/octet-stream;
          sendfile          on;
          tcp_nopush        on;
          server_tokens     off;
          send_timeout      30;
          fastcgi_connect_timeout 300;
          fastcgi_send_timeout    300;
          fastcgi_read_timeout    300;
          keepalive_timeout       30;
          fastcgi_buffers 8 128k;
          reset_timedout_connection on;
          client_header_buffer_size      32k;
          large_client_header_buffers 4 128k;
          client_max_body_size 60m;
          add_header Backend srv-2;
          gzip  on;
          gzip_min_length  1k;
          gzip_buffers     4 8k;
          gzip_http_version 1.1;
          gzip_types	text/plain text/css application/json text/xml application/xml application/javascript text/javascript application/x-javascript image/png image/jpeg;
    
          log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
    	'$status ${request_time}s $body_bytes_sent $request_body '
    	' "$http_referer" "$http_user_agent" $http_x_forwarded_for';
    
          include vhosts/*.conf;
          fastcgi_intercept_errors on;
    }

    2、创建vhosts文件夹(以后所有的网站配置都放在这下面)

    这是模板文件

    server {
    	listen        80;
    	server_name  baidu.com;
    	root   "D:/www/hjgmtool.kt007.com/backend/web";
    	location / {
    		index index.php index.html;
    		error_page 400 /error/400.html;
    		error_page 403 /error/403.html;
    		error_page 404 /error/404.html;
    		error_page 500 /error/500.html;
    		error_page 501 /error/501.html;
    		error_page 502 /error/502.html;
    		error_page 503 /error/503.html;
    		error_page 504 /error/504.html;
    		error_page 505 /error/505.html;
    		error_page 506 /error/506.html;
    		error_page 507 /error/507.html;
    		error_page 509 /error/509.html;
    		error_page 510 /error/510.html;
    		autoindex  off;
    	}
    	location ~ \.php(.*)$ {
    		fastcgi_pass   127.0.0.1:9000;
    		fastcgi_index  index.php;
    		fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
    		fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    		fastcgi_param  PATH_INFO  $fastcgi_path_info;
    		fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
    		include        fastcgi_params;
    	}
    	if (-f $request_filename/index.html){
    	  rewrite (.*) $1/index.html break;
    	}
    	if (-f $request_filename/index.php){
    		rewrite (.*) $1/index.php;
    	}
    	if (!-f $request_filename){
    		rewrite (.*) /index.php last;
    	}
    }

    四、安装MySQL

    见链接:

    https://blog.csdn.net/qq_21720233/article/details/103837936

    五、测试

    <?php
    $mysqli=new mysqli();
    $mysqli->connect('localhost','root','123456','testdb');
    $mysqli->set_charset("utf8");
    $sql="select * from user";
    $rs=$mysqli->query($sql);
    while($row=mysqli_fetch_array($rs,MYSQLI_ASSOC)){
        $c=$row['username'];
        echo "$c";
    }

     

    展开全文
  • 大家应该都知道LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。Nginx...
  • Linux LNMP搭建

    2018-09-08 14:35:28
    Linux lnmp环境搭建 环境配置 Linux nginx MySQL python
  • LNMP中的字母L是Linux系统的意思,不仅可以是RHEL、CentOS、Fedora,还可以是Debian、Ubuntu等系统。 screen命令能做的事情非常多:可以用-S参数创建会话窗口;用-d参数将指定会话进行离线处理;用-r参...

    LNMP动态网站架构

    LNMP动态网站部署架构是一套由Linux + Nginx + MySQL + PHP组成的动态网站系统解决方案(其logo见图20-1)。LNMP中的字母L是Linux系统的意思,不仅可以是RHEL、CentOS、Fedora,还可以是Debian、Ubuntu等系统。

    screen命令能做的事情非常多:可以用-S参数创建会话窗口;用-d参数将指定会话进行离线处理;用-r参数恢复指定会话;用-x参数一次性恢复所有的会话;用-ls参数显示当前已有的会话;以及用-wipe参数把目前无法使用的会话删除,等等。

    下面创建一个名称为backup的会话窗口。请各位读者留心观察,当在命令行中敲下这条命令的一瞬间,屏幕会快速闪动一下,这时就已经进入screen服务会话中了,在里面运行的任何操作都会被后台记录下来。
    以防安装过程中ssh连接断开
    准备使用screeen
    在这里插入图片描述
    在使用源码包安装服务程序之前,首先要让安装主机具备编译程序源码的环境,他需要具备C语言、C++语言、Perl语言的编译器,以及各种常见的编译支持函数库程序。因此请先配置妥当Yum软件仓库,然后把下面列出的这些软件包都统统安装上:
    yum install -y apr* autoconf automake bison bzip2 bzip2* compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc+±devel libtool* libgomp libxml2 libxml2-devel libXpm* libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib-devel

    在这里插入图片描述
    在这里插入图片描述

    把准备安装LNMP动态网站部署架构所需的16个软件源码包和1个用于检查效果的论坛网站系统软件包传到linux系统中

    在这里插入图片描述
    在这里插入图片描述

    CMake是Linux系统中一款常用的编译工具。要想通过源码包安装服务程序,就一定要严格遵守上面总结的安装步骤—下载及解压源码包文件、编译源码包代码、生成二进制安装程序、运行二进制的服务程序安装包。接下来在解压、编译各个软件包源码程序时,都会生成大量的输出信息,下文中将其省略,请读者以实际操作为准。

    tar xzvf cmake-2.8.11.2.tar.gz
    cd cmake-2.8.11.2/
    ./configure
    make
    make install
    在这里插入图片描述
    提示报错
    yum install gcc* c++* -y 即可解决
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    配置Mysql服务
    MySQL数据库当前依然是生产环境中最常使用的关系型数据库管理系统之一,坐拥极大的市场份额,并且已经通过十几年不断的发展向业界证明了自身的稳定性和安全性。另外,在这里整合了MySQL数据库内容.

    在使用Yum软件仓库安装服务程序时,系统会自动根据RPM软件包中的指令集完整软件配置等工作。但是一旦选择使用源码包的方式来安装,这一切就需要自己来完成了。针对MySQL数据库来讲,我们需要在系统中创建一个名为mysql的用户,专门用于负责运行MySQL数据库。请记得要把这类账户的Bash终端设置成nologin解释器,避免黑客通过该用户登录到服务器中,从而提高系统安全性。

    cd …
    useradd mysql -s /sbin/nologin
    在这里插入图片描述
    创建一个用于保存MySQL数据库程序和数据库文件的目录,并把该目录的所有者和所属组身份修改为mysql。其中,/usr/local/mysql是用于保存MySQL数据库服务程序的目录,/usr/local/mysql/var则是用于保存真实数据库文件的目录。

    mkdir -p /usr/local/mysql/var
    chown -Rf mysql:mysql /usr/local/mysql
    在这里插入图片描述
    接下来解压、编译、安装MySQL数据库服务程序。在编译数据库时使用的是cmake命令,其中,-DCMAKE_INSTALL_PREFIX参数用于定义数据库服务程序的保存目录,-DMYSQL_DATADIR参数用于定义真实数据库文件的目录,-DSYSCONFDIR则是定义MySQL数据库配置文件的保存目录。由于MySQL数据库服务程序比较大,因此编译的过程比较漫长,在此期间可以稍微休息一下。

    tar xzvf mysql-5.6.19.tar.gz
    cd mysql-5.6.19/
    cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/var -DSYSCONFDIR=/etc
    make
    make install
    解压
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    为了让MySQL数据库程序正常运转起来,需要先删除/etc目录中的默认配置文件,然后在MySQL数据库程序的保存目录scripts内找到一个名为mysql_install_db的脚本程序,执行这个脚本程序并使用–user参数指定MySQL服务的对应账号名称(在前面步骤已经创建),使用–basedir参数指定MySQL服务程序的保存目录,使用–datadir参数指定MySQL真实数据库的文件保存目录,这样即可生成系统数据库文件,也会生成出新的MySQL服务配置文件。

    rm -rf /etc/my.cnf
    cd /usr/local/mysql
    ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var
    在这里插入图片描述

    把系统新生成的MySQL数据库配置文件链接到/etc目录中,然后把程序目录中的开机程序文件复制到/etc/rc.d/init.d目录中,以便通过service命令来管理MySQL数据库服务程序。记得把数据库脚本文件的权限修改成755以便于让用户有执行该脚本的权限:
    ln -s my.cnf /etc/my.cnf
    cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
    chmod 755 /etc/rc.d/init.d/mysqld
    在这里插入图片描述
    编辑刚复制的MySQL数据库脚本文件,把第46、47行的basedir与datadir参数分别修改为MySQL数据库程序的保存目录和真实数据库的文件内容。

    vim /etc/rc.d/init.d/mysqld
    在这里插入图片描述
    配置好脚本文件后便可以用service命令启动mysqld数据库服务了。mysqld是MySQL数据库程序的服务名称,注意不要写错。顺带再使用chkconfig命令把mysqld服务程序加入到开机启动项中。
    在这里插入图片描述
    MySQL数据库程序自带了许多命令,但是Bash终端的PATH变量并不会包含这些命令所存放的目录,因此我们也无法顺利地对MySQL数据库进行初始化,也就不能使用MySQL数据库自带的命令了。想要把命令所保存的目录永久性地定义到PATH变量中,需要编辑/etc/profile文件并写入追加的命令目录,这样当物理设备在下一次重启时就会永久生效了。如果不想通过重启设备的方式来生效,也可以使用source命令加载一下/ect/profile文件,此时新的PATH变量也可以立即生效了。
    vim /etc/profile

    在这里插入图片描述

    MySQL数据库服务程序还会调用到一些程序文件和函数库文件。由于当前是通过源码包方式安装MySQL数据库,因此现在也必须以手动方式把这些文件链接过来。

    mkdir /var/lib/mysql
    ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
    ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
    ln -s /usr/local/mysql/include/mysql /usr/include/mysql

    在这里插入图片描述
    现在,MySQL数据库服务程序已经启动,调用的各个函数文件已经就位,PATH环境变量中也加入了MySQL数据库命令的所在目录。接下来准备对MySQL数据库进行初始化,这个初始化的配置过程与MariaDB数据库是一样的,只是最后变成了Thanks for using MySQL!

    mysql_secure_installation
    在这里插入图片描述
    配置Nginx服务
    Nginx是一款相当优秀的用于部署动态网站的轻量级服务程序,它最初是为俄罗斯门户站点而开发的,因其稳定性、功能丰富、占用内存少且并发能力强而备受用户的信赖。目前国内诸如新浪、网易、腾讯等门户站点均已使用了此服务。

    Nginx服务程序的稳定性源自于采用了分阶段的资源分配技术,降低了CPU与内存的占用率,所以使用Nginx程序部署的动态网站环境不仅十分稳定、高效,而且消耗的系统资源也很少。此外,Nginx具备的模块数量与Apache具备的模块数量几乎相同,而且现在已经完全支持proxy、rewrite、mod_fcgi、ssl、vhosts等常用模块。更重要的是,Nginx还支持热部署技术,可以7×24不间断提供服务,还可以在不暂停服务的情况下直接对Nginx服务程序进行升级。
    坦白来讲,虽然Nginx程序的代码质量非常高,代码很规范,技术成熟,模块扩展也很容易,但依然存在不少问题,比如是由俄罗斯人开发的,所以在资料文档方面还并不完善,中文资料的质量更是鱼龙混杂。但是Nginx服务程序在近年来增长势头迅猛,相信会在轻量级Web服务器市场具有不错的未来。

    在正式安装Nginx服务程序之前,我们还需要为其解决相关的软件依赖关系,例如用于提供Perl语言兼容的正则表达式库的软件包pcre,就是Nginx服务程序用于实现伪静态功能必不可少的依赖包。下面来解压、编译、生成、安装Nginx服务程序的源码文件:

    cd /usr/local/src
    tar xzf pcre-8.35.tar.gz
    cd pcre-8.35
    ./configure --prefix=/usr/local/pcre
    make
    make install
    在这里插入图片描述

    在这里插入图片描述

    openssl软件包是用于提供网站加密证书服务的程序文件,在安装该程序时需要自定义服务程序的安装目录,以便于稍后调用它们的时候更可控。
    cd /usr/local/src
    tar xzvf openssl-1.0.1h.tar.gz
    cd openssl-1.0.1h
    ./config --prefix=/usr/local/openssl

    在这里插入图片描述make && make install 在这里插入图片描述
    openssl软件包安装后默认会在/usr/local/openssl/bin目录中提供很多的可用命令,我们需要像前面的操作那样,将这个目录添加到PATH环境变量中,并写入到配置文件中,最后执行source命令以便让新的PATH环境变量内容可以立即生效:
    在这里插入图片描述在这里插入图片描述

    zlib软件包是用于提供压缩功能的函数库文件。其实Nginx服务程序调用的这些服务程序无需深入了解,只要大致了解其作用就已经足够了:

    cd /usr/local/src
    tar xzf zlib-1.2.8.tar.gz
    cd zlib-1.2.8
    在这里插入图片描述
    ./configure --prefix=/usr/local/zlib
    在这里插入图片描述
    make && make install
    在这里插入图片描述

    在安装部署好具有依赖关系的软件包之后,创建一个用于执行Nginx服务程序的账户。账户名称可以自定义,但一定别忘记,因为在后续需要调用:

    cd …
    useradd www -s /sbin/nologin
    在这里插入图片描述

    在使用命令编译Nginx服务程序时,需要设置特别多的参数,其中,–prefix参数用于定义服务程序稍后安装到的位置,–user与–group参数用于指定执行Nginx服务程序的用户名和用户组。在使用参数调用openssl、zlib、pcre软件包时,请写出软件源码包的解压路径,而不是程序的安装路径:

    tar xzf nginx-1.6.0.tar.gz
    cd nginx-1.6.0/
    ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.1h --with-zlib=/usr/local/src/zlib-1.2.8 --with-pcre=/usr/local/src/pcre-8.35
    在这里插入图片描述
    make
    make install
    在这里插入图片描述
    要想启动Nginx服务程序以及将其加入到开机启动项中,也需要有脚本文件。可惜的是,在安装完Nginx软件包之后默认并没有为用户提供脚本文件,因此刘遄老师给各位读者准备了一份可用的启动脚本文件,大家只需在/etc/rc.d/init.d目录中创建脚本文件
    vim /etc/rc.d/init.d/nginx
    在这里插入图片描述
    保存脚本文件后记得为其赋予755权限,以便能够执行这个脚本。然后以绝对路径的方式执行这个脚本,通过restart参数重启Nginx服务程序,最后再使用chkconfig命令将Nginx服务程序添加至开机启动项中。大功告成!

    chmod 755 /etc/rc.d/init.d/nginx
    /etc/rc.d/init.d/nginx restart

    chkconfig nginx on
    在这里插入图片描述
    Nginx服务程序在启动后就可以在浏览器中输入服务器的IP地址来查看到默认网页了。相较于Apache服务程序的红色默认页面,Nginx服务程序的默认页面显得更加简洁,如图所示。

    在这里插入图片描述
    配置php服务
    PHP(Hypertxt Preprocessor,超文本预处理器)是一种通用的开源脚本语言,发明于1995年,它吸取了C语言、Java语言及Perl语言的很多优点,具有开源、免费、快捷、跨平台性强、效率高等优良特性,是目前Web开发领域最常用的语言之一。本书的配套站点就是基于PHP语言编写的。

    使用源码包的方式编译安装PHP语言环境其实并不复杂,难点在于解决PHP的程序包和其他软件的依赖关系。为此需要先安装部署将近十个用于搭建网站页面的软件程序包,然后才能正式安装PHP程序。

    yasm源码包是一款常见的开源汇编器,其解压、编译、安装过程中生成的输出信息均已省略:

    cd …
    tar zxf yasm-1.2.0.tar.gz
    cd yasm-1.2.0
    ./configure
    在这里插入图片描述
    make && make install

    在这里插入图片描述

    libmcrypt源码包是用于加密算法的扩展库程序,其解压、编译、安装过程中生成的输出信息均已省略:

    cd …
    tar zxf libmcrypt-2.5.8.tar.gz
    cd libmcrypt-2.5.8
    ./configure
    在这里插入图片描述
    make && make install
    在这里插入图片描述
    libvpx源码包是用于提供视频编码器的服务程序,其解压、编译、安装过程中生成的输出信息均已省略。相信会有很多粗心的读者顺手使用了tar命令的xzvf参数,但如果仔细观察就会发现libvpx源码包的后缀是.tar.bz2,即表示使用bzip2格式进行的压缩,因此正确的解压参数应该是xjvf:

    cd …
    tar xjvf libvpx-v1.3.0.tar.bz2
    cd libvpx-v1.3.0
    ./configure --prefix=/usr/local/libvpx --enable-shared --enable-vp9
    make
    make install
    提示报错,安装 bzip2 安装包即可解决
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    tiff源码包是用于提供标签图像文件格式的服务程序,其解压、编译、安装过程中生成的输出信息均已省略:

    cd …
    tar zxf tiff-4.0.3.tar.gz
    cd tiff-4.0.3
    ./configure --prefix=/usr/local/tiff --enable-shared
    在这里插入图片描述
    make && make install
    在这里插入图片描述

    libpng源码包是用于提供png图片格式支持函数库的服务程序,其解压、编译、安装过程中生成的输出信息均已省略:

    cd …
    tar zxf libpng-1.6.12.tar.gz
    cd libpng-1.6.12
    ./configure --prefix=/usr/local/libpng --enable-shared
    在这里插入图片描述
    make && make install
    在这里插入图片描述
    freetype源码包是用于提供字体支持引擎的服务程序,其解压、编译、安装过程中生成的输出信息均已省略:

    cd …
    tar zxf freetype-2.5.3.tar.gz
    cd freetype-2.5.3
    ./configure --prefix=/usr/local/freetype --enable-shared
    在这里插入图片描述
    make && make install
    在这里插入图片描述

    jpeg源码包是用于提供jpeg图片格式支持函数库的服务程序,其解压、编译、安装过程中生成的输出信息均已省略:

    cd …
    tar zxf jpegsrc.v9a.tar.gz
    cd jpeg-9a
    ./configure --prefix=/usr/local/jpeg --enable-shared

    make在这里插入图片描述
    make install

    展开全文
  • Linux搭建lnmp并部署WeCenter博客 WeCenter源码链接:https://down.chinaz.com/soft/432.htm 准备环境: linux(Centos7) PHP Nginx Mariadb 1.关闭防火墙、Selinux 我们对Markdown编辑器进行了一些功能拓展与语法...

    Linux搭建lnmp并部署WeCenter博客

    WeCenter源码链接:https://down.chinaz.com/soft/432.htm
    准备环境:

    1. Linux(Centos7)
    2. PHP
    3. Nginx
    4. Mariadb

    1.关闭防火墙、Selinux

    service firewalld stop
    set enforce 0
    

    2.添加yum源,安装nginx

    vim /etc/yum.repos.d/nginx.repo
    [nginx] 
    name=nginx repo 
    baseurl=http://nginx.org/packages/centos/7/$basearch/ 
    gpgcheck=0 
    enabled=1 
    

    保存退出

    3.安装nginx

    yum install -y nginx
    

    4.安装、启动、初始化、登陆数据库

    yum install -y mariadb mariadb-server
    service mariadb start
    mysql_secure_installation
    mysql -uroot -p
    

    5.创建一个数据库,为后续做准备

    create database <库名>;
    

    6.使用第三方扩展安装PHP7

    rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
    安装PHP
    yum -y install php72w php72w-cli php72w-common php72w-devel php72wembedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache
    

    7.修改配置文件

    vim /etc/php-fpm.d/www.conf 
    user = nginx
    group = nginx
    #PS:保证nginx进行的管理用户和php服务进程的管理用户保持一致
    service php-fpm restart
    //重启服务
    

    8.实现nginx+php关联

    vim /etc/nginx/conf.d/bbb.conf
    
    server {
      listen  80;
      server_name localhost;
      location / {
        root /usr/share/nginx/html;        //nginx网页代码存放目录
        index index.html index.php;
      }
      location ~ \.php$ {
        root /usr/share/nginx/html;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
      }
    }
    

    9.编写一个简单的测试文件

    cd /usr/share/nginx/html
    vim test.php     //编辑一个php配置文件
    cat test.php
    <?php
    	phpinfo();
    ?>
    重启nginx服务,进行测试
    

    请添加图片描述

    10.将下载好的源码传入Linux

    我这里采用的是cmd里面的scp
    scp <文件名> root@<Linux主机的ip>:/      <你要传入Linux的哪个位置,我就先传到/目录>
    

    11.将下载好的wecenter源码上传到Centos7里,并且移动到/usr/share/nginx/html/里面,新建一个文件夹,方便观看。

    unzip WeCenter_v3.3.0.zip  //解压此文件
    

    在这里插入图片描述

    12.创建虚拟主机文件

    vim /etc/nginx/conf.d/ccc.conf
    cat ccc.conf
    
    
    server {
      listen  80;
      server_name localhost;
      location / {
        root /usr/share/nginx/html/we;
        index index.html index.php;
      }
      location ~ \.php$ {
        root /usr/share/nginx/html/we;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
      }
    }
    保存退出
    进入/usr/share/nginx文件夹,给html文件夹下的所有文件的所属组和用户更改
    chown nginx:nginx -R html
    重启nginx服务
    service nginx restart
    

    在这里插入图片描述

    展开全文
  • linuxLNMP环境搭建

    千次阅读 2018-04-13 12:01:19
    LNMPlinux、nginx、mysql、php的简写;LNMP与LAMP环境一样也是用来做web网站后台的,nginx是轻量级的,进程间的通讯使用php-fpm独立使用;apache则是比较臃肿的,调用php的模块来完成的,需要加载很多模块,运行...
  • #定义lnmp环境配置根目录 basedir=/lnmp if [ -e $baseroot ] then echo "dir is exits" exit 0 fi mkdir $baseroot cd $basedir #创建mysql目录存放mysql 配置和data mysqlcnf=mysql/conf mysqldata=mysql/data ...
  • Linux-宝塔LNMP网站搭建

    2021-04-28 11:16:14
    搭建网站 1. 修改服务器防火墙端口配置 修改外网防火墙 如果之前已经设定了,选择一个即可,如果没有设定,点击:外网防火墙==>创建防火墙 推荐打开如下端口服务: 宝塔需要开放8888,888端口,如果后面...
  • 转载来源:... 作者:小郗测试 一、安装Lamp wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz && tar zxf lnmp1.2-full.tar.gz && cd lnmp1.2-full &...
  • Linux环境搭建LNMP一键安装

    千次阅读 2016-09-22 19:01:39
    CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian Linux系统需要3GB以上硬盘剩余空间需要128MB以上内存(如果为128MB的小内存VPS,Xen的需要有SWAP,OpenVZ的至少要有128MB以上的vSWAP或突发内存),注意小内存请勿使用64位...
  • 宝塔linux搭建LNMP和LAMP

    2018-10-24 17:03:36
    原 Centos巧用宝塔linux搭建LNMP和LAMP 2018年04月08日 10:15:34 齐泽文的Blog 阅读数:667 &lt;span class="tags-box artic-tag-box...
  • 平常的工作,我作为PHP程序员经常要搭建一下环境,这个环境就是Linux系统下安装nginx,php,mysql这三个软件,对软件进行配置,然后浏览器上能够正常打开运行查看项目。CentOS安装软件有好几种方式,我经常...
  • Windows子系统搭建lnmp环境 ubuntu18.04+nginx1.14+php7.0-fpm+mysql 1.更新Ubuntu软件源 sudo apt-get update 2.安装nginx sudo apt-get install nginx 3.安装mysql sudo apt install mysql-server mysql-client ...
  • 系统命令备份,建议首次安装完后马上做,这样后面监测系统出现内核感染时运行命令时使用的是安全的没被黑客修改过的命令,安装一些系统监控工具,如htop,ntopng等,可很好查看系统运行状态,关闭不必要的服务和...
  • 一、linux 系统限制配置 1、关闭系统防火墙  systemctl stop firewalld.service 关闭防火墙 systemctl disable firewalld.service 禁用防火墙 2、关闭SElinux sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/...
  • LNMP = Linux Nginx Mysql PHP Nginx ("engine x")是一个高性能的 HTTP 和 反向代理 服务器。Nginx 是由 lgor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0发布于 2004年 10月 4日...
  • linux中lnmp环境的搭建

    2016-09-06 15:27:47
    /usr/share/nginx/html新建一个test.php  ;?> 访问http://ip:81/test.php即可看到nginx的php页面 7.负载配置 [python] view plain copy upstream site{   ...
  • 一、安装nginx 1. 先升级所有包同时也升级软件和系统内核 yum update ...systemctl list-dependencies | grep php-fpm ps -ef | grep php-fpm 到这里就基本完成了lnmp的初步搭建,如果觉得对你有帮助,帮我点下赞呗。
  • 这里默认已经虚拟机上安装好了Linux系统,并且网络配置完成哦,若还未安装Linux的请自行安装 这边建议使用SSH工具链接虚拟机,敲的更流畅喔~如何使用SSH工具链接本地Linux虚拟机——我还没写此处占位 使用root...
  • 1️⃣本文章使用DockerFIile来搭建LNMP环境,和Docker监控。 docker centos安装 卸载老版本的 docker 及其相关依赖 sudo yum remove docker docker-common container-selinux docker-selinux docker-...
  • mkdir /lnmp/nginx #安装依赖 yum install gcc gcc-c++ automake pcre pcre-devel zlip zlib-devel openssl openssl-devel libxml2-devel libpng-devel curl-devel numactl 2、安装nginx cd /lnmp yum -y install ...
  • 环境准备: 虚拟机软件:vmware workstation ...我们都知道linux下安装软件主要有三种方式: 1.源码编译安装,即下载软件源代码,利用gcc g++ make 等编译工具进行编译安装; 此方式的优点:可以指定软件版本,可...
  • [Linux]LNMP网站服务器架构搭建

    千次阅读 2019-09-02 16:33:37
    LNMP为运行动态网站或服务器的架构,由Linux,Nginx,Mysql,PHP组成,其中的Mysql也可为MariaDB,PHP也可为Python。 2、环境设置 rhel 6.5 服务器IP:172.25.69.11 本地测试主机IP:172.25.69.250 3、安装PHP ...
  • ansible利用playbook搭建lnmp

    千次阅读 2018-09-18 19:49:44
    在搭建lnmp环境对于nginx的配置文件如果需要解析动态页面,需要将/etc/nginx/conf.d/default.conf的文件加入到nginx.conf(最好是所有拷过去) [root@ansible nginx]# cat vars/main.yaml worker_...
  • 本篇主要讲解了基于LinuxLNMP测试环境的搭建
  • 搭建环境: Linux:Centos 7 nginx:1.8 mysql:5.7 ...Centos 7 搭建lnmp环境(yum安装方式) 遇到403问题:解决Nginx出现403 forbidden (13: Permission denied)报错的三种办法,用的是第三种方法
  • (ps:以前从未很少接触Linux配置的小白,感觉应该还是比较详细的干货。每一个模块的部署是相互独立的。所以没有刻意在乎顺序) PHP环境配置(禅道项目需要解析PHP) 首先下载好php的tar包,下载地址...
  • 首先学习linux系统之前,我觉得应该先了解一下linux的来历和发展历程,会让我们对linux充满好奇心,对后续的学习会有所帮助,兴趣是最好的老师嘛 (搬砖): 早20世纪70年代,UNIX系统是开源而且免费的。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,593
精华内容 4,237
关键字:

在linux中搭建lnmp

linux 订阅