编译安装lnmp 环境
一、lnmp环境介绍
lnmp 环境是指(linux、nginx、mysql、php)组成的服务端环境
二、linux
这里使用ubuntu
三、编译安装nginx
安装ubuntu C编译环境:
sudo apt update sudo apt install build-essential
安装必要的依赖包
sudo apt-get install libpcre3 libpcre3-dev sudo apt-get install zlib1g-dev sudo apt-get install openssl libssl-dev
nginx 下载地址:https://nginx.org/en/download.html 选择适当的版本进行下载
下载完成后解压:
tar -xzvf nginx-1.24.0.tar.gz
进入解压目录,编译安装nginx
./configure --prefix=/home/lyh/lnmp/nginx124 \ # 指定安装目录 --with-http_ssl_module \ #启用对https的支持 --with-http_v2_module \ #提供对 HTTP/2 的支持 --with-http_stub_status_module \ #启动nginx监控模块,用于查看一些连接数等信息 --with-http_mp4_module \ #运行nginx播放mp4文件 make #编译 make install #安装
创建一个nginx的用户和用户组,且该用户不可登录
sudo useradd -s /sbin/nologin  nginx
修改nginx的安装目录所属用户和用户组为nginx
sudo chown -R nginx:nginx nginx124/
修改nginx的启动用户为nginx,编辑配置文件
#在全景配置项中添加改行配置
user  nginx;
重新加载配置文件(热加载)
sudo nginx -s reload
配置nginx 使用systemd启动
cd /ect/systemd/system touch nginx.server chmod 644 nginx.service
添加一下内容(根据集体情况修改):
[Unit] Description=nginx - high performance web server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/home/lyh/lnmp/nginx124/sbin/nginx -c /home/lyh/lnmp/nginx124/conf/nginx.conf ExecReload=/home/lyh/lnmp/nginx124/sbin/nginx -s reload ExecStop=/home/lyh/lnmp/nginx124/sbin/nginx -s stop [Install] WantedBy=multi-user.target
设置开机启动
systemctl enable nginx.service
四、安装mysql
这里下载mysql5.7的社区版本(编译好的压缩版本),下载网页:https://dev.mysql.com/downloads/mysql/
下载完成后解压缩
tar -xzvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
ubuntu安装mysql5.7所需的依赖
sudo apt install -y libaio1 libmecab2
创建一个mysql的用户和用户组,且该用户不可登录
sudo useradd -s /sbin/nologin  mysql
修改mysql的安装目录所属用户组为mysql
sudo chown -R mysql:mysql mysql57/
在 /etc/mysql 目录创建配置文件 my.cnf ,添加如下内容,配置内容参考官网:https://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/secure-deployment-post-install.html
[mysqld] datadir=/home/lyh/lnmp/mysql57/data socket=/tmp/mysql.sock port=3306 log-error=/home/lyh/lnmp/mysql57/log/error.log user=mysql secure_file_priv=/home/lyh/lnmp/mysql57/mysql-files local_infile=OFF
初始化数据库,不然会报错缺少某些表的错误:
./bin/mysqld --defaults-file=/etc/mysql/my.cnf --initialize
配置使用systemd 来启动mysql服务(参见:https://dev.mysql.com/doc/mysql-secure-deployment-guide/8.0/en/secure-deployment-post-install.html)
cd /etc/systemd/system touch mysqld.service chmod 644 mysqld.service
添加一下配置内容(根据具体情况自行修改):
[Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql # Have mysqld write its state to the systemd notify socket Type=notify # Disable service start and stop timeout logic of systemd for mysqld service. TimeoutSec=0 # Start main service ExecStart=/home/lyh/lnmp/mysql57/bin/mysqld --defaults-file=/etc/mysql/my.cnf $MYSQLD_OPTS # Use this to switch malloc implementation EnvironmentFile=-/etc/sysconfig/mysql # Sets open_files_limit LimitNOFILE = 10000 Restart=on-failure RestartPreventExitStatus=1 # Set environment variable MYSQLD_PARENT_PID. This is required for restart. Environment=MYSQLD_PARENT_PID=1 PrivateTmp=false
允许mysqld服务自动启动或重启
systemctl enable mysqld.service
使用systemctl启动mysql:
systemctl start mysqld
如果登录mysql报错:Access denied for user 'root'@'localhost' (using password:NO)
停止mysqld 服务,在 /etc/mysql/my.cnf 文件末尾添加:skip-grant-tables ,这样就允许了root用户无面登录。(生产环境不推荐)
编译安装php
安装php所需依赖
apt install -y php-dev php-pear php-fpm php-mysql php-curl php-json php-xml php-zip php-gd php-mbstring libxml2 libxml2-dev libpcre2-dev sqlite3 libsqlite3-dev libcurl4-openssl-dev libpng-dev libwebp-dev libjpeg-dev
编译安装
./configure --prefix=/home/lyh/lnmp/php8 \
--enable-fpm \ # 搭建lnmp,php后台进程 fastcgi,还可以通过参数指定fastcgi的启动用户 --with-openssl \ --with-external-pcre \ --with-zlib \ --enable-calendar \ --with-curl \ --enable-ftp \ --enable-gd \ --with-webp \ --with-jpeg \ --with-mysqli \ --enable-sockets \ --enable-soap make make install
拷贝解压目录下的配置文件到安装目录
cp /home/lyh/download/php-8.3.2/php.ini-development /home/lyh/lnmp/php8/lib/php.ini
配置fastcgi ,进入php安装目录下的 etc目录
cd /home/lyh/lnmp/php8/etc
拷贝一份配置文件
cp php-fpm.conf.default php-fpm.conf
cd php-fpm.d/
cp www.conf.default www.conf
修改配置文件中的启动用户为php用户:
vim www.conf
修改以下配置:
user = php
group = php
创建php用户
useradd -s /sbin/nologin php
修改php的安装目录所属用户好用户组为:php
chown -R php:php  php8/
启动php-fpm 进程
cd /home/lyh/lnmp/php8/sbin
./php-fpm
查看php后台进程端口号
root@lyh-2:/home/lyh/lnmp/php8/sbin# netstat -tunlp |grep php
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      1497/php-fpm: maste
配置nginx支持php代码
进入nginx安装目录下的conf目录,编辑nginx.conf,去掉一下几行注释
location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
# 注意 下面一行原本是这样,fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; ,由于会报错,才改成了下面的这一行
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
重启nginx
systemctl restart nginx
到此,nginx支持php代码配置完成。lnmp环境搭建完成
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号