【6】手机当服务器搭建网站系列:termux+apache2+php+mysql搭建多个网站共存
操作前建议把手机上的termux清除数据或者卸载termux重新安装。期间出现停顿,一律输入y回车即可。①添加TUR PHP OPG密钥②写入php7.4 tur源③安装php7.4php -v或者直接执行下面的命令添加php7.4 tur。如何配置nginx与php-fpm通信可以参考第一篇到第四篇,详细讲解了LNMP环境下搭建网站的操作。由于8080端口已经被nginx占用,所以这里需要使用8
操作前建议把手机上的termux清除数据或者卸载termux重新安装。
- 打开手机终端模拟器Termux,手动添加国内源
termux-change-repo
- 安装apache2和mysql数据库
pkg update && pkg upgrade -y && pkg install -y wget apache2 mariadb
期间出现停顿,一律输入 y 回车即可。
- 安装php7.4
①添加TUR PHP OPG密钥
mkdir -p $PREFIX/etc/apt/sources.list.d && cd $PREFIX/etc/apt/trusted.gpg.d && wget https://gitee.com/meihali/website/releases/download/script/tur.gpg && cd
②写入php7.4 tur源
echo "deb [signed-by=$PREFIX/etc/apt/trusted.gpg.d/tur.gpg] https://tur.kcubeterm.com tur-packages tur tur-on-device tur-continuous" >> $PREFIX/etc/apt/sources.list.d/tur.list
③安装php7.4
pkg update && pkg install -y php7 php7-apache
④验证版本:
php -v
或者直接执行下面的命令添加php7.4 tur源安装php7.4更简单方便:
pkg install tur-repo
- 如果想nginx和apache2共存,并使用php7.4搭建多个网站,执行下面的命令安装即可:
pkg install -y nginx php7-fpm
配置nginx和php-fpm通信:与之前的配置方法相同,虽换了php7.4但并没有发生变化,启动nginx与php-fpm也一样是:nginx && php-fpm。
如何配置nginx与php-fpm通信可以参考第一篇到第四篇,详细讲解了LNMP环境下搭建网站的操作。
- 配置Apache以处理PHP7.4
由于8080端口已经被nginx占用,所以这里需要使用8081端口,以免发生冲突。
①先删除httpd.conf
rm $PREFIX/etc/apache2/httpd.conf
②重新创建httpd.conf
1)可以一键从第三方库下载httpd.conf
cd $PREFIX/etc/apache2 && wget https://gitee.com/meihali/website/releases/download/script/php7httpd.conf && mv php7httpd.conf httpd.conf && cd
2)手动创建httpd.conf(由于内容太多可能粘贴不完整)
nano $PREFIX/etc/apache2/httpd.conf
把下面的内容复制粘贴进去:
ServerRoot "/data/data/com.termux/files/usr"
ServerName localhost
Listen 8081
LoadModule php7_module /data/data/com.termux/files/usr/libexec/apache2/libphp7.so
LoadModule mpm_prefork_module /data/data/com.termux/files/usr/libexec/apache2/mod_mpm_prefork.so
LoadModule authn_file_module /data/data/com.termux/files/usr/libexec/apache2/mod_authn_file.so
LoadModule authn_core_module /data/data/com.termux/files/usr/libexec/apache2/mod_authn_core.so
LoadModule authz_host_module /data/data/com.termux/files/usr/libexec/apache2/mod_authz_host.so
LoadModule authz_groupfile_module /data/data/com.termux/files/usr/libexec/apache2/mod_authz_groupfile.so
LoadModule authz_user_module /data/data/com.termux/files/usr/libexec/apache2/mod_authz_user.so
LoadModule authz_core_module /data/data/com.termux/files/usr/libexec/apache2/mod_authz_core.so
LoadModule access_compat_module /data/data/com.termux/files/usr/libexec/apache2/mod_access_compat.so
LoadModule auth_basic_module /data/data/com.termux/files/usr/libexec/apache2/mod_auth_basic.so
LoadModule reqtimeout_module /data/data/com.termux/files/usr/libexec/apache2/mod_reqtimeout.so
LoadModule include_module /data/data/com.termux/files/usr/libexec/apache2/mod_include.so
LoadModule filter_module /data/data/com.termux/files/usr/libexec/apache2/mod_filter.so
LoadModule mime_module /data/data/com.termux/files/usr/libexec/apache2/mod_mime.so
LoadModule log_config_module /data/data/com.termux/files/usr/libexec/apache2/mod_log_config.so
LoadModule env_module /data/data/com.termux/files/usr/libexec/apache2/mod_env.so
LoadModule headers_module /data/data/com.termux/files/usr/libexec/apache2/mod_headers.so
LoadModule setenvif_module /data/data/com.termux/files/usr/libexec/apache2/mod_setenvif.so
LoadModule version_module /data/data/com.termux/files/usr/libexec/apache2/mod_version.so
LoadModule slotmem_shm_module /data/data/com.termux/files/usr/libexec/apache2/mod_slotmem_shm.so
LoadModule unixd_module /data/data/com.termux/files/usr/libexec/apache2/mod_unixd.so
LoadModule status_module /data/data/com.termux/files/usr/libexec/apache2/mod_status.so
LoadModule autoindex_module /data/data/com.termux/files/usr/libexec/apache2/mod_autoindex.so
LoadModule negotiation_module /data/data/com.termux/files/usr/libexec/apache2/mod_negotiation.so
LoadModule dir_module /data/data/com.termux/files/usr/libexec/apache2/mod_dir.so
LoadModule userdir_module /data/data/com.termux/files/usr/libexec/apache2/mod_userdir.so
LoadModule alias_module /data/data/com.termux/files/usr/libexec/apache2/mod_alias.so
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs"
<Directory "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
<Files ".ht*">
Require all denied
</Files>
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "/data/data/com.termux/files/usr/var/log/apache2/access_log" common
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/data/data/com.termux/files/usr/lib/cgi-bin/"
</IfModule>
<Directory "/data/data/com.termux/files/usr/lib/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule headers_module>
RequestHeader unset Proxy early
</IfModule>
<IfModule mime_module>
TypesConfig /data/data/com.termux/files/usr/etc/apache2/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
</IfModule>
<IfModule proxy_html_module>
Include /data/data/com.termux/files/usr/etc/apache2/extra/proxy-html.conf
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
ServerAdmin you@example.com
ErrorLog "/data/data/com.termux/files/usr/var/log/apache2/error_log"
LogLevel warn
Include /data/data/com.termux/files/usr/etc/apache2/conf.d/*.conf
③Ctrl+O回车保存,Ctrl+X退出
这样配置完成后,能让apache2识别php7.4进行通信,从而能同时处理更多的Web请求。
- 为每一个网站配置虚拟主机
网站1使用8081端口和默认网站根目录
网站2使用8082端口和自定义网站根目录
网站3使用8083端口和自定义网站根目录
……以此类推!
下面以搭建苹果cms、wordpress博客和苹果cms三个网站共存为例
1)创建网站根目录
网站1使用默认的根路径即可,只需要创建网站2和网站3的根目录就好
①创建网站2根目录
mkdir -p /data/data/com.termux/files/usr/share/apache2/default-site/htdocs2
②创建网站3根目录
mkdir -p /data/data/com.termux/files/usr/share/apache2/default-site/htdocs3
……以此类推!增加多少个网站就创建多少个网站根目录。
2)编辑httpd.conf配置文件
①打开httpd.conf
nano $PREFIX/etc/apache2/httpd.conf
②在Listen 8081下添加网站2和网站3端口
Listen 8082
Listen 8083
以此类推,每新增一个网站就要增添相对应的端口,如下图:

③按回车键继续追加下面的内容(启用虚拟主机及授权各网站使用哪个网站根目录)
# 启用虚拟主机
Include /data/data/com.termux/files/usr/etc/apache2/extra/httpd-vhosts.conf
# 第一个网站使用默认htdocs路径:
<Directory "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
# 第二个网使用htdocs2路径:
<Directory "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs2">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
# 第三个网使用htdocs3路径:
<Directory "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs3">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
以此类推,每新增一个网站就要增添该网站的根目录援权,如下图

④Ctrl+O回车保存,Ctrl+X退出
3)编辑虚拟主机配置文件:
①删除vhosts.conf
rm $PREFIX/etc/apache2/extra/httpd-vhosts.conf
②重新创建vhosts.conf
nano $PREFIX/etc/apache2/extra/httpd-vhosts.conf
复制粘贴下面三个网站的配置内容进去:
# 第一个网站(端口 8081)
<VirtualHost *:8081>
DocumentRoot "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs"
ServerName localhost
</VirtualHost>
# 第二个网站(端口 8082)
<VirtualHost *:8082>
DocumentRoot "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs2"
ServerName localhost
</VirtualHost>
# 第三个网站(端口 8083)
<VirtualHost *:8083>
DocumentRoot "/data/data/com.termux/files/usr/share/apache2/default-site/htdocs3"
ServerName localhost
</VirtualHost>
以此类推,每新增一个网站就要增添该网站的虚拟主机配置,重启apache生效。
③Ctrl+O回车保存,Ctrl+X退出
- 在各网站根目录下上传各网站源码
①把苹果cms源码移到默认网站根目录htdocs里面
cd $PREFIX/share/apache2/default-site/htdocs && rm -rf * && wget https://gitee.com/meihali/website/releases/download/script/maccms.zip && unzip maccms.zip && rm maccms.zip && cd
②把wordpress源码移到htdocs2目录下
cd $PREFIX/share/apache2/default-site/htdocs2 && rm -rf * && wget https://gitee.com/meihali/website/releases/download/script/wordpressnow.zip && unzip wordpressnow.zip && rm wordpressnow.zip && cd
③还把苹果cms源码移到htdocs3目录下
cd $PREFIX/share/apache2/default-site/htdocs3 && rm -rf * && wget https://gitee.com/meihali/website/releases/download/script/maccms.zip && unzip maccms.zip && rm maccms.zip && cd
- 启动apache和mysql
apachectl start && mysqld &
①登录mysql:
mysql -u root
②添加mysql登录密码:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
可以把123456替换为复杂一些又容易记的密码
③退出mysql:
exit
④重新进入mysql,这时就不能再用mysql -u root命令登录,需要在后面加个-p
mysql -u root -p
回车后,会提示输入密码!输入密码后再按回车键即可成功登录。
⑤为每个网站创建相对应的数据库
1)创建一个专用于苹果cms的数据库:
CREATE DATABASE maccms;
CREATE USER 'root'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON maccms.* TO 'root'@'localhost';
FLUSH PRIVILEGES;
SHOW DATABASES;
2)创建一个专用于wordpress的数据库:
CREATE DATABASE wordpress;
CREATE USER 'root'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON wordpress.* TO 'root'@'localhost';
FLUSH PRIVILEGES;
SHOW DATABASES;
3)还是创建一个专用于苹果cms2的数据库:
CREATE DATABASE maccms2;
CREATE USER 'root'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON maccms2.* TO 'root'@'localhost';
FLUSH PRIVILEGES;
SHOW DATABASES;
IDENTIFIED BY '123456';中的密码123456要与之前的主数据库添加密码时保持一致,之前主数据库添加什么密码这里也要修改成相对应的密码。
⑥查看新创建的数据库:
show databases;
⑦删除maccms数据库(不建议)
DROP DATABASE maccms;
⑧删除wordpress数据库(不建议)
DROP DATABASE wordpress;
⑨启动MySQL远程访问:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
EXIT;
注意IDENTIFIED BY '123456'中的密码是否与之前的主数据库添加密码时保持一致
- 浏览器访问:
网站1
http://127.0.0.1:8081/
网站2
http://127.0.0.1:8082/
网站3
http://127.0.0.1:8083/
然后根据向导去安装即可!配置数据库时,需要把数据数据库主机localhost改成192.168开头的内网IP,执行ifconfig命令获取
- 苹果cms安装向导,如下图操作:
1)
2)
3)
4)
5)
6)
7)
8)
9)
苹果cms源码官网下载地址:
https://www.maccms.cn/down.html
wordpress源码官网下载地址:
https://cn.wordpress.org/download/releases/
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)