deepin Ubuntu/Debian系统 环境下安装nginx,php,mysql,手动安装,配置自己的项目

本文基本上是根据 通义千问 给出的答案,然后一步步调试而出的。
一、环境准备

1.:更新系统

php 复制代码
sudo apt update 
sudo apt upgrade -y

2: 安装基础依赖

php 复制代码
sudo apt install build-essential wget libpcre3-dev zlib1g-dev libssl-dev libxml2-dev libsqlite3-dev libbz2-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libfreetype6-dev libonig-dev git -y

二、手动编译安装 Nginx

1:下载 Nginx 源码

php 复制代码
cd /usr/local/src
wget https://nginx.org/download/nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0

2:编译配置

php 复制代码
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/sbin/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-stream \
--with-stream_ssl_module

3: 编译并安装

php 复制代码
make && sudo make install

4:创建启动脚本(systemd)

php 复制代码
sudo tee /etc/systemd/system/nginx.service << 'EOF'
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target

[Service]
Type=forking
ExecStartPre=/usr/local/sbin/nginx -t
ExecStart=/usr/local/sbin/nginx
ExecReload=/usr/local/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

5: 启用并启动 Nginx

php 复制代码
sudo systemctl daemon-reexec
sudo systemctl enable nginx
sudo systemctl start nginx

6:验证

php 复制代码
curl http://localhost
# 应该返回 Nginx 默认页面内容

三、手动编译安装 PHP(以 PHP 8.2 为例,版本可以自己选择)

1: 下载 PHP 源码

php 复制代码
cd /usr/local/src
wget https://www.php.net/distributions/php-8.2.12.tar.gz
tar -zxvf php-8.2.12.tar.gz
cd php-8.2.12

2:编译配置

php 复制代码
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--with-openssl \
--with-zlib \
--enable-bcmath \
--with-bz2 \
--with-curl \
--enable-exif \
--enable-intl \
--enable-mbstring \
--enable-pcntl \
--enable-sockets \
--enable-soap \
--with-pdo-mysql \
--with-mysqli \
--with-gd \
--with-jpeg \
--with-freetype \
--with-gettext \
--enable-opcache

3:编译安装

php 复制代码
make && sudo make install

4: 复制配置文件

php 复制代码
sudo cp php.ini-production /usr/local/php/etc/php.ini
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sudo cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

5:创建用户(用于运行 PHP-FPM)

php 复制代码
sudo useradd -r -s /sbin/nologin www-data

6:创建 systemd 服务

php 复制代码
sudo tee /etc/systemd/system/php-fpm.service << 'EOF'
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
Restart=always

[Install]
WantedBy=multi-user.target
EOF

7:启动 PHP-FPM

php 复制代码
sudo systemctl enable php-fpm
sudo systemctl start php-fpm

四、安装 MySQL / MariaDB(推荐 MariaDB 源码安装)

1: 下载 MariaDB 源码

php 复制代码
cd /usr/local/src
wget https://downloads.mariadb.org/interstitial/mariadb-10.11.2/source/mariadb-10.11.2.tar.gz
tar -zxvf mariadb-10.11.2.tar.gz
cd mariadb-10.11.2

这种方法下载如果网速慢,每次会下载到一半多就会自动停止,我选择是在浏览器下载(停止可以在继续下载,)
https://archive.mariadb.org/mariadb-10.11.2/source/ 这个网站选择 (mariadb-10.11.2.tar.gz )下载,下载完成后复制到目录 /usr/local/src下。然后按照上面的命令执行

2:安装 CMake(用于编译)

php 复制代码
sudo apt install cmake -y

3: 安装 Boost(MariaDB 需要)

php 复制代码
wget https://sourceforge.net/projects/boost/files/boost/1.75.0/boost_1_75_0.tar.gz
sudo tar -xzf boost_1_75_0.tar.gz -C /usr/local/
sudo mv /usr/local/boost_1_75_0 /usr/local/boost

4:编译配置 MariaDB

php 复制代码
sudo cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DENABLED_PROFILING=1 \
-DWITH_BOOST=/usr/local/boost

这一步我运行提示报错:

php 复制代码
cmake: ./src/unix/process.c:951: uv_spawn: Assertion `!(options->flags & ~(UV_PROCESS_DETACHED | UV_PROCESS_SETGID | UV_PROCESS_SETUID | UV_PROCESS_WINDOWS_HIDE | UV_PROCESS_WINDOWS_HIDE_CONSOLE | UV_PROCESS_WINDOWS_HIDE_GUI | UV_PROCESS_WINDOWS_VERBATIM_ARGUMENTS))' failed.
已放弃

解决办法:卸载掉cmake,然后用源码重新安装了一遍。

4.1:彻底重装系统 CMake

php 复制代码
sudo rm /usr/bin/cmake /bin/cmake

4.2: 重新安装 CMake(使用包管理器)

php 复制代码
cd /tmp
wget https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4-linux-x86_64.tar.gz
(因为我本地速度慢,使用的是 curl下载的。
curl -L -O https://github.com/Kitware/CMake/releases/download/v3.30.2/cmake-3.30.2-linux-x86_64.tar.gz
)
tar -zxf cmake-3.26.4-linux-x86_64.tar.gz
sudo cp cmake-3.26.4-linux-x86_64/bin/cmake /usr/bin/cmake
sudo chmod +x /usr/bin/cmake

4.3: 验证安装

php 复制代码
file /usr/bin/cmake
输出:ELF 64-bit LSB pie executable, x86-64, ...(正确)

4.4:再次运行 MariaDB 配置

php 复制代码
cd /usr/local/src/mariadb-10.11.2
rm -rf CMakeCache.txt CMakeFiles/

sudo /usr/bin/cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DENABLED_PROFILING=1 \
-DWITH_BOOST=/usr/local/boost

5.:编译安装

php 复制代码
make -j$(nproc) && sudo make install

6.:初始化数据库

php 复制代码
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
sudo chown -R mysql:mysql /usr/local/mysql
# 初始化
sudo /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
# 启动
sudo /usr/local/mysql/support-files/mysql.server start

7.:设置开机启动

php 复制代码
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
sudo chmod +x /etc/init.d/mysql
sudo chkconfig --add mysql  # CentOS
# 或使用 systemd(略复杂,可后续配置)

8.:安全设置

php 复制代码
sudo /usr/local/mysql/bin/mysql_secure_installATION

五、配置 Nginx + PHP 运行你的项目

1: 创建项目目录

php 复制代码
sudo mkdir -p /var/www/html/myproject(/var/www/html/ 是你存放本地项目的目录,自己随便修改)
sudo chown -R www-data:www-data /var/www/html

2:上传你的项目文件到 /var/www/html/

3:配置 Nginx 虚拟主机

项目地址要根据自己本地的去修改,

php 复制代码
sudo tee /usr/local/nginx/conf.d/inner-cusser.conf << 'EOF'
server {
    listen 80;
    server_name inner-cusser.local;
    root /home/user/xiangmu/weiyun-inner-service/cusser/web;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}
EOF

4:在 /usr/local/nginx/nginx.conf 文件中添加 配置文件的代码

php 复制代码
在http模块下面添加:
include       /usr/local/nginx/conf.d/*.conf;

5:在 /etc/hosts添加域名:

php 复制代码
和上面文件中的域名要一致
127.0.0.1 inner-cusser.local

6:修改 PHP-FPM 监听地址(确保一致)

只要一样就行。

php 复制代码
编辑 /usr/local/php/etc/php-fpm.d/www.conf:
listen = 127.0.0.1:9000

重启 PHP-FPM:
sudo systemctl restart php-fpm

7:重启 Nginx

php 复制代码
sudo /usr/local/sbin/nginx -t  # 测试配置
sudo /usr/local/sbin/nginx -s reload

8:浏览器验证

php 复制代码
http://inner-cusser.local
相关推荐
二进制星轨3 小时前
在 Ubuntu 上快速配置 Node.js 环境(附问题说明)
linux·ubuntu·node.js
Physicist in Geophy.4 小时前
新版ubuntu中sac安装问题(缺少libncurses5)
linux·运维·ubuntu
Ryan ZX5 小时前
Ubuntu 升级OpenSSH10.2p1与OpenSSL3.5.4版本避坑实践
linux·运维·服务器·ubuntu
慕慕涵雪月光白7 小时前
在Ubuntu系统上安装英伟达(NVIDIA)RTX 3070 Ti的驱动程序
linux·运维·人工智能·ubuntu
巴渝小禹8 小时前
【Ubuntu】ubuntu虚拟机磁盘不够扩容后开机黑屏-解决方案
linux·ubuntu
老黄编程8 小时前
08-ubuntu如何获取发行版代号
linux·运维·ubuntu
草莓熊Lotso8 小时前
Linux 权限管理进阶:从 umask 到粘滞位的深度解析
linux·运维·服务器·人工智能·ubuntu·centos·unix
无锋起浪11 小时前
Ubuntu2204中文输入法设置
ubuntu
花姐夫Jun17 小时前
在 Ubuntu ARM 架构系统中安装并使用花生壳实现内网穿透
arm开发·ubuntu·架构