服务器PHP环境搭建及网站https部署
程序员文章站
2022-05-01 08:11:49
...
mysql
准备工作
下载mysql源码文件,解压
依赖项:
- cmake
- gcc,g++
编译
进入解压后的目录
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql \
-DSYSCONFDIR=/etc/mysql \
-DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
-DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 \
-DWITH_BOOST=/usr/local/boost
配置阶段
错误一
没有boost或者boost版本不正确
解决方法:
下载相应的boost版本,解压到指定目录,然后添加编译命令DWITH_BOOST=指定目录。例如我的1-66-0下载地址
错误二
没有找到相应的ssl库
解决方法
yum -y install openssl openssl-devel
错误三
缺少依赖库Curses
解决方法:
错误写的很清楚,移除CMakeCache.txt文件,然后安装依赖包:yum -y install ncurses-devel
make阶段
错误四
内存不足,mysql5.9以上的版本安装需要至少1G的内存,云主机一共才1G。
解决办法:
先删除之前的编译文件:make clean && rm -f CMakeCache.txt
dd if=/dev/zero of=/data/swap_add bs=1M count=2048
mkswap /data/swap_add
swapon /data/swap_add
swapon -s
配置
# 添加mysql组和用户
groupadd mysql
useradd -g mysql mysql
# 将mysql配置的目录更换到mysql组中
chown -R mysql:mysql /data/mysql /var/run/mysqld
# 配置环境变量
vim /etc/profile
# 添加以下两行
export MYSQL_HOME="/usr/local/mysql"
export PATH="$PATH:$MYSQL_HOME/bin"
source /etc/profile
# 查看mysql默认加载配置文件
mysqld --verbose --help| grep -A 1 "Default options"
# 初始化数据库
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
### 如果报错
Can't find error-message file 'asedir=/usr/local/mysql/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive
修改mysql配置文件,在mysqld段下加入
lc-message-dir = /usr/local/mysql/share
lc-message = en-US
然后再执行初始化命令
重置密码
- 杀掉正在运行的进程
- 创建一个文本文件,里面写入修改密码的语句,例如写入/home/me/mysql-init
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MyNewPass’;// 注意一定有结尾的分号
- 运行mysqld
shell> mysqld –init-file=/home/me/mysql-init & - 此时可以用新密码登录
mysql -u root -p - 成功登录后,删除/home/me/mysql-init文件,之后的重启和停止跟平常一样
nginx
准备工作
下载,解压到指定目录 添加nginx组和nginx用户# 新增组。同时加入组ID号,低于499的系统账号
groupadd -r nginx
# 创建用户指定登录shell,用户组,并且是系统账号
useradd -s /sbin/nologin -g nginx -r nginx
# 查看用户,组id号
id nginx
创建nginx需要指定的目录
编译安装
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/sbin \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/usr/local/nginx/log/error.log \
--pid-path=/usr/local/nginx/log/nginx.pid \
--http-log-path=/usr/local/nginx/log/access.log \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/usr/local/nginx/tmp/client \
--http-proxy-temp-path=/usr/local/nginx/tmp/proxy \
--http-fastcgi-temp-path=/usr/local/nginx/tmp/fcgi \
--with-http_stub_status_module
make && make install
php
准备工作
下载解压php源码 下载依赖文件yum -y install libxml2 libxml2-devel libcurl libcurl-devel autoconf
编译安装
# ./configure \
--prefix=/usr/local/php/ \
--with-curl \
--with-pdo-mysql \
--with-mysqli \
--with-openssl
# make && make install
在path中加入/usr/local/php/bin
扩展安装
mbstring为例
进入php源码文件目录下的ext目录,里面有各个扩展的文件夹,进入mbstring
# phpize # 生成configure文件
# ./configure --help 查看帮助
# ./configure --with-php-config=/usr/local/php/bin/php-config --enable-mbstring
# make
# make install
# vim php.ini # 打开mbstring的注释
redis
下载解压,进入目录make即可hiredis
为了使用swoole异步redis,需要安装hiredis库;下载解压# make -j
# make install
# ldconfig
重新编译swoole
# ./configure --with-php-config=/usr/local/php/bin/php-config --enable-async-redis
# make clean
# make
# make install
# 编辑
网站开启https
[参考链接](https://coolshell.cn/articles/18094.html)- 首先,打开 https://certbot.eff.org 网页。
- 选择系统和web容器
- 按照下面的教程安装一遍即可
以nginx,centos7为例
yum -y install python2-certbot-nginx
certbot --nginx
## 出现以下错误
ImportError: No module named 'requests.packages.urllib3'
## 解决办法
安装request库
pip install --upgrade --force-reinstall 'requests==2.6.0' urllib3
certbot --nginx
按照提示一步步操作
## 直到出现"Congratulations! You have successfully enabled"说明配置成功
## 更新证书 - 该免费证书的有效期只有90天,但是,可以通过定时脚本更新证书
0 0 1 * * /usr/bin/certbot renew --force-renewal
5 0 1 * * /usr/sbin/service nginx restart
推荐阅读
-
PHP LAMP环境搭建及网站配置流程(完整版)
-
Linux Debian 下LNMP服务器nginx+mysql+php环境搭建及配置_MySQL
-
网站开发系列1——服务器环境搭建,网站开发搭建_PHP教程
-
Linux Debian 下LNMP服务器nginx+mysql+php环境搭建及配置_MySQL
-
服务器上PHP环境已经搭建好,接下来如何把网站放到服务器上可以访问啊
-
服务器搭建Nginx、PHP、Mysql环境及配置虚拟主机
-
网站开发系列1——服务器环境搭建,网站开发搭建_PHP教程
-
PHP LAMP环境搭建及网站配置流程(完整版)
-
服务器下PHP环境已经搭建好,接上来如何把网站放到服务器下可以访问啊
-
PHP学习笔记(1)了解php开发环境及搭建 php从入门到精通 php学习网站 php100