安装 apache2 php mysql-server
sudo apt-get update sudo apt-get install apache2 mysql-server #php参考后面
这里注意,如果只运行apache2+php的话,那安装个libapache2-mod-php包就可以了,apache2把php当做一个模块来运行,和Windows中的 include 差不多。如果要用nginx 的话 应该安装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
ubuntu设置swap交换内存
亚马逊云给的vps是没有交换内存的
free -m 查看 SWAP 后面全是0
那么运行一些命令,可能提示不能分配内存
那就增加个SWAP 玩玩
sudo dd if=/dev/zero of=swap.mem bs=1024k count=1000
count=1000000参数代表数量,这个正好是1g,直接增大1g ,bs=1024k 后面一定要写k,默认是byte 会很慢的。
转化为swap文件
sudo mkswap swap.mem增加权限
sudo chmod 600 swap.1 #600权限 防止其他程序更改
激活swap文件
sudo swapon swap.mem
查看效果
再次输入:free -m
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/test.sinocd.cn/web <Directory /home/ubuntu/htdocs/test.sinocd.cn/web> DirectoryIndex index.php Options FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
ssl 配置参考:
<IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin admin@domain.com ServerName domain.com ServerAlias www.domain.com DocumentRoot /home/ubuntu/htdocs/domain.com/frontend/web <Directory /home/ubuntu/htdocs/domain.com/frontend/web> DirectoryIndex index.php Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile/etc/apache2/ssl/domain.com_public.crt SSLCertificateKeyFile /etc/apache2/ssl/domain.com.key SSLCertificateChainFile /etc/apache2/ssl/domain.com.crt <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> </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
以后再补充啊