Linux
Apache 2
wget https://mirrors.edge.kernel.org/ubuntu/pool/universe/a/auto-apt/auto-apt_0.3.24_amd64.debsudo dpkg -i auto-apt_0.3.24_amd64.debsudo apt install checkinstall libexpat1-dev# 解决"APR not found"wget http://archive.apache.org/dist/apr/apr-1.7.0.tar.gztar zxvf apr-1.7.0.tar.gz && cd apr-1.7.0auto-apt run ./configuremake && sudo mkdir -p /usr/local/apr/libcheckinstall# pcrewget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gztar zxvf pcre-8.45.tar.gz && cd pcre-8.45auto-apt run ./configure --prefix=/usr/local/pcremakesudo mkdir -p /usr/local/pcre/lib && sudo mkdir -p /usr/local/pcre/share/doc && sudo mkdir /usr/local/pcre/share/mancheckinstall# 安装Apache 2cd /opt && sudo mkdir /opt/apachewget https://apache.claz.org/httpd/httpd-2.4.48.tar.gzwget http://archive.apache.org/dist/apr/apr-util-1.6.1.tar.gztar zxvf httpd-2.4.48.tar.gztar zxvf apr-util-1.6.1.tar.gzmv apr-1.7.0 httpd-2.4.48/srclib/apr && mv apr-util-1.6.1 httpd-2.4.48/srclib/apr-utilcd httpd-2.4.48auto-apt run ./configure --prefix=/opt/apache --with-pcre=/usr/local/pcre/bin/pcre-config --with-included-aprmake && make install# 修改系统变量nano ~/.bashrc# apacheexport APACHE_HOME="/opt/apache"export APACHE_BIN="$APACHE_HOME/bin"export PATH=$PATH:$APACHE_BIN# 与Nginx共存sudo nano /etc/nginx/conf/nginx.conf # 修改Nginx配置http {listen 80;location / {proxy_pass https://localhost:8080; # 跳转到Apache指定端口proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $host;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_http_version 1.1;proxy_redirect off;}}sudo nano /opt/apache/conf/httpd.conf # 修改Apache端口配置Listen 8080sudo httpd -k start # 启动Apache# 开机自启Apache 2sudo cp /opt/apache/bin/apachectl /etc/init.d/apache2sudo apt install sysv-rc-confsudo sysv-rc-conf apache2 on
多站点虚拟主机
sudo nano /opt/apache/conf/httpd.confInclude conf/extra/httpd-vhosts.confsudo nano /opt/apache/conf/extra/httpd-vhosts.conf<VirtualHost *:8080># 站点域名ServerName www.example.com:80# Apache使用apt安装的默认网站路径在/var/www/html里,编译安装的路径在apache/htdocs里DocumentRoot "/opt/apache/htdocs"# 访问权限设置<Directory "/opt/apache/htdocs"># 允许列出目录结构Options Indexes# 不可覆盖AllowOverride None# 允许所有来源访问Require all granted</Directory># 默认网页DirectoryIndex index.php</VirtualHost>
MySQL
数据库选择了MariaDB 10。
sudo apt install mariadb-server # 安装MariaDBsudo mysql_secure_installation # 初始化配置sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf# bind-address=127.0.0.1 # 允许远程登录mysql -uroot -p # 进入MariaDB终端grant all privileges on *.* to root@localhost identified by 'passwd'; # 修改账户权限及密码flush privileges; # 刷新权限
安装MariaDB的PHP扩展
sudo apt install autoconfcd php-8.0.8/ext/mysqliphpizeauto-apt run ./configure --with-php-config=/opt/php/bin/php-configmake && make install# 开启扩展php --inisudo nano /opt/php/lib/php.inidate.timezone=PRC ; 时区extension=mysqli.so; sock位置在MySQL终端中使用STATUS获取pdo_mysql.default_socket=/var/run/mysqld/mysqld.sockmysqli.default_socket=/var/run/mysqld/mysqld.sockhttpd -k restart
PHP 8
cd /opt && sudo mkdir /opt/phpwget https://www.php.net/distributions/php-8.0.8.tar.gzsudo apt install pkg-config libxml2 libxml2-dev libsqlite3-devtar zxvf php-8.0.8.tar.gz && cd php-8.0.8auto-apt run ./configure --prefix=/opt/php --enable-debug --enable-fpm --with-apxs2=/opt/apache/bin/apxsmake && checkinstall# 修改系统变量nano ~/.bashrc# phpexport PHP_HOME="/opt/php"export PHP_BIN="$PHP_HOME/bin"export PATH=$PATH:$PHP_BINsource ~/.bashrc# 使Apache 2支持PHP 8sudo nano /opt/apache/conf/httpd.confLoadModule php_module modules/libphp.so<IfModule dir_module>DirectoryIndex index.phpAddHandler application/x-httpd-php .php</IfModule>
网站访问流程

- URL(Uniform Resource Locator):统一资源定位符,即网址,
协议://域名:端口号/路径/文件名 - DNS(Domain Name System):域名服务器,存有域名与IP映射关系的数据库
- Browser/Server架构:浏览器-服务器架构,更新快,但性能低。相对还有Client/Server架构(客户端-服务器架构),性能高,但更新慢
