ubuntu server apache php mysql-server详细配置
以前 ubuntu 18 server 配置 apache2 php mysql-server 的详细教程。目前ubuntu24.04server 基本都可以参考此教程来详细配置,只不过它们中部分软件的版本不同,安装和配置基本相同。还有就是目前把数据库 更换为 mariadb-server
安装 apache2 php mysql-server
注意 你是使用mysql 还是 mariadb
sudo apt-get update sudo apt-get install apache2
sudo apt install mysql-server #php参考后面
sudo apt install mariadb-server mariadb-client #如果使用 mariadb 数据库服务
这里注意,如果访问量小 那默认安装的 libapache2-mod-php包就可以了,apache2把php当做一个模块来运行,和Windows中的 include 差不多。同时开启太多php进程,就会很占内容。
如果并发量大 应该安装php-fpm。
这个命令也可以这么来写,php不想安装ubuntu默认版本
ubuntu18.04目前最高支持的是php7.2版本的,比较旧。但我的某个软件却依赖ubuntu18.04,所以呢,系统版本没有升级的情况下只升级php版本的办法是换软件源,也就是添加一个php的公共源
sudo add-apt-repository ppa:ondrej/php sudo apt update
sudo apt install php7.4 -y
# 这里注意php默认版本和对应版本
sudo apt install php-{soap,gmp,curl,xml,bz2,intl,gd,mbstring,mysql,zip,imagick,memcached} -y这样安装php 还是比较方便的,上面花括号里的字符间都没有空格,另外,一些扩展如 libapache2-mod-php7.4 php7.4-cli php7.4-common 在执行php7.4安装的时候会默认安装。
其它软件比如mysql 如果也可以考虑换源,毕竟个人的一些数据保存的访问量不是很大,mysql5.6还能胜任,所以暂时的就不折腾了。
在安装mysql-server的过程中会弹出对话框让我们输入数据库root用户的密码,这个我们输入两次就好。
首先,a2enmod 是个好命令,我们在安装完上面的包以后,记得用它去开启重写模块和ssl模块,这样把原来的配置备份文件直接复制过去就可以直接启用了。
sudo a2enmod rewrite sudo a2enmod ssl
如果安装完成出现 不能解析php文件的 原文输出的情况
则执行如下命令,一定要搞清楚自己所安装的 PHP版本
sudo a2dismod php7.0 #关闭原来的php7.0 sudo a2enmod php7.2 #开启现在的php7.2 sudo systemctl restart apache2
数据库开启php_pdo_mysql支持
sudo phpenmod pdo_mysql
一般到这个地方我就先配置个ftp服务,然后把我的备份配置文件直接上传到服务器了。
ftp配置参考:http://sinoll.com/blog/view?id=111
mysql相关配置
mysql-server 数据库默认字符集设置
/etc/mysql/mysql.conf.d/mysqld.cnf在 【mysqld】下追加:
character-set-server=utf8
/etc/mysql/conf.d/mysql.cnf在 【mysql】 下追加:
default-character-set=utf8
最后 sudo service mysql restart
配置免费可用的ssl 证书
https://github.com/Neilpang/acme.sh/
这个不是一两句话可以说完的所以写个连接,自己好好研究
还有另外一种配置和更新ssl证书的方法
也可以参考我最近写的一篇文章 利用 certbot 来更新和设置ssl证书
apache2配置可以参考:
sudo vim /etc/apache2/sites-enables/000-default.conf
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /home/ubuntu/htdocs/domain.com/web
<Directory /home/ubuntu/htdocs/domain.com/web >
DirectoryIndex index.php
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>ssl 配置参考:
证书目前都是 公共证书机构(如 Let's Encrypt)免费签发 的。
<IfModule mod_ssl.c> <VirtualHost *:443> ServerName domain.com ServerAlias www.domain.com
DocumentRoot /home/ubuntu/htdocs/domain.com/public/web <Directory /home/ubuntu/htdocs/domain.com/public/web > DirectoryIndex index.php Options FollowSymLinks AllowOverride All Require all granted </Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on SSLCertificateFile /etc/letsencrypt/live/domain.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem </VirtualHost> </IfModule>
php配置参考
sudo vim /etc/php/7.0/apache2/conf/php.ini
short_open_tag = On max_file_uploads = 20M post_max_size = 80M
根据自己的需要去修改php.ini 文件
apache2配置和php.ini文件修改后,要重启服务,配置生效。
系统防火墙是否开启
最后 如果服务器开启了防火墙,那么就要开启防火墙规则
sudo ufw app list
获得应用程序配置文件的列表:
Apache Apache Full Apache Secure OpenSSH
开启apache2 防火墙
$ sudo ufw allow 'Apache' $ sudo ufw allow 'Apache Full' $ sudo ufw allow 'Apache Secure'
这样 就能访问了 如果是测试环境 可以关闭防火墙的
$ sudo ufw enable
$ sudo ufw disable
输入以下命令以查看防火墙状态:
$ sudo ufw status
基本上就这样了。
在windows下配置Apache+php环境
apache2.4需要配置serverroot路径 ,一般就是apache2.4的安装或解压目录路径,这一句配置后apache就能运行了
Define SRVROOT "E:\ser\Apache24"
然后在 apache配置文件httpd.conf中添加
#php support LoadModule php7_module "E:\ser\php-7.4.21-forApache\php7apache2_4.dll" PHPIniDir "E:\ser\php-7.4.21-forApache\php.ini" <IfModule mime_module> …… #php support AddType application/x-httpd-php .php </IfModule>
其它php相关配置去php.ini文件中修改
windows 下配置 vhost 大约在480行附近 去掉注释
# Virtual hosts Include conf/extra/httpd-vhosts.conf
然后配置 更多的主机
<VirtualHost 10.42.170.209:80> ServerName 10.42.170.209 DocumentRoot "E:\ser\htdocs\score\app\web" <Directory "E:\ser\htdocs\score\app\web"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
最后 再来说 在windows 下使用.htaccess URL重写的配置方法
先去掉加载重写模块的注释,大约在165行左右
LoadModule rewrite_module modules/mod_rewrite.so
然后给主机添加 目录控制选项
<Directory "E:\ser\htdocs\score\app\web"> Options Indexes FollowSymLinks AllowOverride All </Directory>
每次配置完成后记得重启apache服务,一般的用管理员权限打开cmd 到apache安装路径下的bin目录 执行
httpd.exe -k restart
.htaccess文件的写法 根据需要 ,一个yii2URL重写的示例
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1以后再补充啊
登录后可以发表评论与回复。
还没有评论,来做第一个发言的人。