记一次身心俱疲的部署php项目经历

0. 前言

这两天帮狗儿子部署从GitHub上down的php论坛项目,看着那上传时间四年前,我突然有一种不详的预感?。果然,折腾了好久。。。其实还是自己太菜了,服务器啥的搞的少。?

1. 本地部署

首先,先在本地试试能不能跑起来,没怎么写过php代码,用的是集成的wamp环境部署的,嗯,没啥问题。

2. 虚拟机部署
2.1 安装Ubuntu server 14.04

最开始安装的是16.04,但是后来在哪看的说:ubuntu16.04已经选择PHP7.0作为新的基础包了,所以不能再Ubuntu16.04上安装PHP5,如果硬要安装,则会出现依赖问题,而且一般无法解决
而这个项目比较老,装php7会有一些函数不能用,所以老老实实换成了14.04

2.2 修改数据源
#1. 编辑数据源
vi /etc/apt/sources.list

#2.删除全部内容并修改为
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

#3. 更新数据源
apt-get update
2.3 安装apache
#1.更新检查
apt-get update 

#2.安装Apache 
apt-get install apache2
2.4 安装PHP 5.6
#1. 添加支持php5.6源
add-apt-repository ppa:ondrej/php  
#2. 安装php5.6
apt-get update
apt-get install php5.6
apt-get install php5.6-gd
apt-get install php5.6-mysql
apt-get install php5.6-mbstring
apt-get install php5.6-zip
apt-get install php5.6-curl

#3.解决apache无法解析php文件,显示php源码
apt-get install libapache2-mod-php5.6
2.5 安装mysql
apt-get install mysql-client
apt-get install mysql-server
2.6 配置mysql远程访问
mysql -uroot -p

use mysql;
update user set Host='%' where User='root';
flush privileges;

#打开mysql配置文件
vi /etc/mysql/mysql.conf.d/mysqld.cnf
将bind-address = 127.0.0.1注释

#重启mysql服务:
service mysql restart

使用navicat远程连接数据库–>建表

2.7 将代码上传到/var/www/html里
2.8 apache开启伪静态

之前都是常规操作,本以为这样就可以了。结果部署完首页是出来了,点别的页面跳转都是404。百度了一下,说是在虚机配置中没有把AllowOverride 打开,导致无法加载 .htaccess 文件引起的。我最开始还把人家源码里的 .htaccess 文件给删了哈哈哈?
按照网上的说法是修改<Directory></Directory>里的内容,但是也没说这个东西在哪。我是通过apt安装的apache,没有网上说的http.conf文件。后来经过了解才知道apache2.conf便是主要的配置文件。果然,在这里面找到了<Directory></Directory>,并做了以下修改
在这里插入图片描述
这样改完之后再打开首页。。直接500错误了。第一天我以为这样不行,导致后来又乱折腾,走了很多弯路。直到我想起来,可以看看日志,报的啥错误?

#查看日志
tail -f /var/log/apache2/error.log

在这里插入图片描述
Invalid command ‘RewriteEngine’, perhaps misspelled or defined by a module not included in the server configuration…又是啥鸡儿错误?

百度说是打开apache的配置文件httpd.conf ,取消 LoadModule rewrite_module modules/mod_rewrite.so前的注释。。可是我没有httpd.conf,apache2.conf里也没这个东西。

研究了一下原来是这样
模块在mods目录,将./mods-available中可用的建立链接到./mods-enabled即可启用

cp /etc/apache2/mods-available/rewrite.load  /etc/apache2/mods-enabled

则可将rewrite模块启用

3. 总结

至此终于部署完成。其实最近在做毕设就在想,各种软件框架迅速更迭真是让人难受。大佬们总是能拥抱变化,享受新特性,我这种菜鸡却只能对着网上各种不适用的解决方案欲哭无泪?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值