搭建Web服务器
本文介绍如何搭建web服务器
目录
Android下使用KSWeb
网上随便找个3.986破解版就行,老版我遇到过很严重的bug。在root环境下只有Lighthttpd能使用80端口,Apache和Nginx不能使用80端口,具体是Apache使用80端口就无法启动,Nginx启动后所有界面403。
LinuxDeploy和Termux运行http服务器都不完美,介意MySQL的话不建议使用。
Windows下使用Phpstudy
如果只是调试且需要配置MySQL,建议使用Phpstudy,很方便,不仅带GUI界面,而且各个软件版本都可以随意更换
Phpstudy开机自启,管理员启动命令行,使用命令安装服务,并设置开启启动
1 | mysqld install mysql |
Phpstudy的反向代理在Apache2.4.39\conf\vhosts\0localhost_80.conf文件中设置
php相关
如果无法直接安装,先添加源,
1 | apt install -y apt-transport-https lsb-release ca-certificates wget |
安装
安装php7.4
1 | apt-get install php7.4 php7.4-fpm php7.4-mysql php7.4-curl php7.4-gd php7.4-mbstring php7.4-xml php7.4-xmlrpc php7.4-zip php7.4-opcache php7.4-bcmath php7.4-bz2 php7.4-odbc php7.4-gmp php7.4-imap php7.4-ldap php-json |
安装php8.X
1 | apt install -y lsb-release ca-certificates apt-transport-https software-properties-common |
安装composer
1 | wget https://getcomposer.org/composer.phar |
测试php信息
1 | <?php |
切换php版本
查询使用的php版本
1 | ls -lha /etc/alternatives | grep php |
切换到7.4
1 | update-alternatives --set php /usr/bin/php7.4 |
卸载指定版本的php
1 | apt-get autoremove php8* |
查找php配置文件位置,其实是不对的
1 | find / -name php.ini |
或者
1 | php -i |grep php\.ini |
composer安装
1 | php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" |
php性能设置
1 | nano /etc/php/7.4/fpm/php-fpm.conf |
重启php生效
1 | service php7.4-fpm restart |
Nginx相关
debian系安装:apt-get install nginx
基本配置
1 | nano /etc/nginx/nginx.conf |
将user nginx改为user www-data
注释掉log,并修改worker_processes 8;
重载配置文件nginx -s reload
如果出现nginx: configuration file /etc/nginx/nginx.conf test failed,使用nginx -t
配置php
打开站点文件nano /etc/nginx/sites-available/default
在第五行Index后添加index.php,再添加默认php
1 | location ~ \.php$ { |
对于需要另一个版本php的目录,使用
1 | location /inf/ { |
重载配置文件nginx -s reload
重启服务器systemctl restart nginx
添加访问密码
安装插件apt-get install apache2-utils
在/etc/nginx目录执行htpasswd -bdc .htpasswd user password
打开站点文件nano /etc/nginx/sites-available/default,添加
1 | location /123456/ { |
然后打开浏览器访问,应该是需要输入密码了
如果登陆后某些资源401,请检查域是否相同,例如使用192.168.1.X登录后某些页面请求了192.168.192.X
Nginx开启反向代理
打开站点文件nano /etc/nginx/sites-available/default,添加
写入
1 | location /vs/ { |
若代理指定地址,添加
1 | allow 192.168.192.0/24; |
设置404页面
在/etc/nginx/nginx.conf的http字段添加fastcgi_intercept_errors on;
在/etc/nginx/sites-available/default的server字段添加error_page 404 = /404.html;
在服务器根目录放入404.html;就能看到效果了
测试:nginx -t
重载:nginx -s reload
显示目录
在location字段添加
1 | autoindex on; |
日志相关
日志文件在/var/log/nginx/
Apache相关
安装带php的apache服务器
1 | apt-get install apache2 php libapache2-mod-php php-fpm |
关闭日志
1 | nano /etc/apache2/apache2.conf |
注释掉LogLevel warn和ErrorLog${APACHE_LOG_DIR}/error.log
增加超时
特别是在wordpress要升级但是服务器又不是很给力的情况下
替换
1 | KeepAliveTimeout 5000 |
Windows上的反向代理
打开/conf/httpd.conf,写入
1 | LoadModule proxy_module modules/mod_proxy.so |
Linux上的反向代理
开启模块
1 | a2enmod proxy |
修改配置文件
1 | nano /etc/apache2/apache2.conf |
写入
1 | <VirtualHost *:80> |
注:对于事件超过2分钟的应用,需设置timeout
对于https
1 | <VirtualHost *:443> |
未通过测试,可能是没配置SSL
重启服务器生效
1 | systemctl restart apache2 |
开启webdav
启用模块
1 | a2enmod dav_fs |
添加端口
1 | nano /etc/apache2/ports.conf |
添加
1 | Listen 88 |
配置文件
1 | nano /etc/apache2/sites-available/webdav.conf |
添加主机,这个要放在配置文件最后
1 | DavLockDB /var/www/webdav/DavLock |
激活
1 | ln -s /etc/apache2/sites-available/webdav.conf /etc/apache2/conf-enabled/webdav.conf |
给权限
1 | chown -R www-data /var/www/webdav/sean/ |
创建密钥文件,最后关键字为登陆用户名。输入后要求输入两遍密码
1 | htpasswd -c /var/www/webdav/passwd.dav sean |
使用链接http://192.168.192.200:88/webdav/ 进行访问
MySQL相关
安装
1 | apt-get install mariadb-server mariadb-client php-mysql |
配置MySQL
登录数据库
1 | mysql -u root -p //直接回车就行,没密码 |
建立一个名为wordpress的数据库
1 | CREATE DATABASE wordpress; |
查看数据库是否创建成功
1 | SHOW DATABASES; |
删除数据库
1 | DROP DATABASE datebase; |
切换为mysql
1 | use mysql |
查看用户和权限
1 | SELECT User, Password, Host FROM user; |
授予远程主机访问数据库权限
1 | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '你的密码' WITH GRANT OPTION; |
如果要删除用户
1 | delete from user where user='root' and host='0.0.0.0'; |
刷新用户和权限
1 | FLUSH PRIVILEGES; |
导入sql文件
USE 你要导入的数据库;mysql -u 用户名 -p 你要导入的数据库 < /path/to/yourfile.sql
卸载mysql
1 | aptitude purge mariadb-server |
重置数据库
1 | service mysql stop |
常见Web服务器比较
| Server | Apache | Nginx | Lighttpd |
|---|---|---|---|
| Proxy代理 | 非常好 | 非常好 | 一般 |
| Rewriter | 好 | 非常好 | 一般 |
| Fcgi | 不好 | 好 | 非常好 |
| 热部署 | 不支持 | 支持 | 不支持 |
| 系统压力比较 | 很大 | 很小 | 比较小 |
| 稳定性 | 好 | 非常好 | 不好 |
| 安全性 | 好 | 一般 | 一般 |
| 技术支持 | 非常好 | 很少 | 一般 |
| 静态文件处理 | 一般 | 非常好 | 好 |
| Vhosts虚拟主机 | 支持 | 不支持 | 支持 |
| 反向代理 | 一股 | 非常好 | 一般 |
| Session sticky | 支持 | 不支持 | 支持 |
参考
Apache+php环境配置
搭建网站之二——Windows环境安装PHP开发环境
Debian下用Apache2搭建WebDAV
树莓派下Apache2配置WebDav