deepin Ubuntu/Debian系统 环境下安装nginx,php,mysql,手动安装,配置自己的项目
本文基本上是根据 通义千问 给出的答案,然后一步步调试而出的。
一、环境准备
1.:更新系统
sudo apt update
sudo apt upgrade -y
2: 安装基础依赖
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 源码
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:编译配置
./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: 编译并安装
make && sudo make install
4:创建启动脚本(systemd)
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
sudo systemctl daemon-reexec
sudo systemctl enable nginx
sudo systemctl start nginx
6:验证
curl http://localhost
# 应该返回 Nginx 默认页面内容
三、手动编译安装 PHP(以 PHP 8.2 为例,版本可以自己选择)
1: 下载 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:编译配置
./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:编译安装
make && sudo make install
4: 复制配置文件
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)
sudo useradd -r -s /sbin/nologin www-data
6:创建 systemd 服务
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
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
四、安装 MySQL / MariaDB(推荐 MariaDB 源码安装)
1: 下载 MariaDB 源码
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(用于编译)
sudo apt install cmake -y
3: 安装 Boost(MariaDB 需要)
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
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
这一步我运行提示报错:
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
sudo rm /usr/bin/cmake /bin/cmake
4.2: 重新安装 CMake(使用包管理器)
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: 验证安装
file /usr/bin/cmake
输出:ELF 64-bit LSB pie executable, x86-64, ...(正确)
4.4:再次运行 MariaDB 配置
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.:编译安装
make -j$(nproc) && sudo make install
6.:初始化数据库
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.:设置开机启动
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.:安全设置
sudo /usr/local/mysql/bin/mysql_secure_installATION
五、配置 Nginx + PHP 运行你的项目
1: 创建项目目录
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 虚拟主机
项目地址要根据自己本地的去修改,
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 文件中添加 配置文件的代码
在http模块下面添加:
include /usr/local/nginx/conf.d/*.conf;
5:在 /etc/hosts添加域名:
和上面文件中的域名要一致
127.0.0.1 inner-cusser.local
6:修改 PHP-FPM 监听地址(确保一致)
只要一样就行。
编辑 /usr/local/php/etc/php-fpm.d/www.conf:
listen = 127.0.0.1:9000重启 PHP-FPM:
sudo systemctl restart php-fpm
7:重启 Nginx
sudo /usr/local/sbin/nginx -t # 测试配置
sudo /usr/local/sbin/nginx -s reload
8:浏览器验证
http://inner-cusser.local
