ubuntu server apache php mysql-server详细配置

博客 1524次浏览 收藏

以前 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

以后再补充啊

评论

登录后可以发表评论与回复。

还没有评论,来做第一个发言的人。