openEuler源码部署LNMP
·
编译安装nginx
安装支持软件
dnf -y install apr-util-devel pcre-devel apr-devel gcc gcc-c++ make cmake autoconf libtool bison re2c openssl-devel libxml2-devel zlib-devel curl-devel libpng-devel libjpeg-turbo-devel freetype-devel libicu-devel oniguruma-devel sqlite-devel libxslt-devel libzip-devel ncurses-devel libtirpc-devel rpcgen
创建运行用户、组和日志目录
useradd -M -s /sbin/nologin nginx
mkdir -p /var/log/nginx
chown -R nginx:nginx /var/log/nginx
编译安装nginx
tar zxf nginx-1.26.3.tar.gz -C /usr/src
cd /usr/src/nginx-1.26.3/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre
make && make install
创建软链接
ln -s /usr/local/nginx/sbin/* /usr/local/sbin
添加Nginx系统服务
vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/sbin/nginx -t
ExecStart=/usr/local/sbin/nginx
ExecReload=/usr/local/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
User=root
Group=root
[Install]
WantedBy=multi-user.target
部署mysql数据库
解包
tar zxf mysql-8.0.36.tar.gz
tar zxf cmake-3.16.2.tar.gz
cd cmake-3.16.2
./configure
gmake && gmake install
boost安装
tar zxf boost_1_77_0.tar.gz mv boost_1_77_0 mysql-8.0.36/boost
配置
cd mysql-8.0.36 mkdir build && cd build #因为mysql8.0为防止源码污染,不能直接在源码目录编译,以防止污染源码文件。必须使用独立的构建目录 cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DSYSCONFDIR=/etc \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DWITH_SSL=system \ -DENABLED_LOCAL_INFILE=ON \ -DWITH_BOOST=../boost \ -DWITH_DEBUG=1
- -DCMAKE_INSTALL_PREFIX:指定 MySQL 的安装根目录(二进制文件、库等存放位置)
- -DSYSCONFDIR:配置文件的安装目录(如 my.cnf)
- -DMYSQL_DATADIR:数据库数据文件的存储路径(需确保目录存在且权限正确)
- -DWITH_SSL:使用系统自带的 OpenSSL 库(而非编译内置的)
- -DENABLED_LOCAL_INFILE:启用 LOAD DATA LOCAL INFILE 功能(允许从本地文件导入数据)。
- -DWITH_BOOST:定 Boost 库的路径(MySQL 8.0+ 需要 Boost 作为依赖)
- -DWITH_DEBUG:启用调试模式(生成带调试符号的二进制文件,适合开发测试)
注意:
因为mysql8.0为防止源码污染,不能直接在源码目录编译,以防止污染源码文件。必须使用独立的构建目录
编译及安装
make -j$(nproc) #-j选项表示同时运行的任务,根据cpu核心数确定执行任务的数量,该变量用于获取系统上可用的处理器核心 make install
注意:
-j 选项表示同时运行的任务,根据cpu核心数确定执行任务的数量,该变量用于获取系统上可用的处理器核心
初始化数据库
添加程序用户mysql
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
创建数据目录和pid存放目录并赋权
mkdir -p /usr/local/mysql/data
chown mysql:mysql /usr/local/mysql/data
执行初始化命令(无密码)
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
配置mysql配置文件
vim /etc/my.cnf
[client]
socket=/usr/local/mysql/data/mysql.sock
[mysqld]
socket=/usr/local/mysql/data/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
port = 3306
配置服务
设置启动脚本并启动
ln -s /usr/local/mysql/bin/* /bin
cp /usr/local/mysql/support-files/mysql.server
/etc/init.d/mysqld chmod +x
/etc/init.d/mysqld
chkconfig --add mysqld
systemctl start mysqld
设置mysql管理员密码
跳过密码认证登录
mysql -u root --skip-password
设置mysql管理员密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'aptech1!'; FLUSH PRIVILEGES; exit;
源码编译安装php(Hypertext Preprocessor 超文本预处理语言)
源码编译及安装
解包
tar zxf php-8.2.20.tar.gz cd php-8.2.20
配置
./configure \ --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --enable-fpm \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-openssl \ --with-zlib \ --enable-mbstring \ --with-curl
编辑及安装
make -j$(nproc) make install
配置PHP-FPM
php.ini-development:开发版样例文件,用于学习、测试
php.ini-production:生产版样例文件,用于实际运营
cp php.ini-production /usr/local/php/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
vim /usr/lib/systemd/system/php-fpm.service
[Unit]
Description=The PHP FastCGI Process Manager
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize
ExecReload=/bin/kill -USR2 \$MAINPID
[Install]
WantedBy=multi-user.target
配置完毕后
systemctl enable php-fpm
systemctl start php-fpm
配置Nginx支持PHP
修改Nginx配置
vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;
location / { root html;
index index.php index.html index.htm;
}
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;
}
}
重启服务
systemctl restart nginx systemctl restart php-fpm
验证LNMP环境
创建测试PHP文件
echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/info.php
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐

所有评论(0)