laravel项目部署在linux上

前置条件

增加mcrypt

先运行:find / -name mcrypt   找到mcrypt的路径(一般在你的php安装包里面的ext里面)。

[root@fredfred879 htdocs]# find / -name mcrypt
/root/soft/php-5.6.30/ext/mcrypt

然后进入这个目录(下面是进入目录的命令,你要写你自己的目录路径)

[root@fredfred879 htdocs]# cd /root/soft/php-5.6.30/ext/mcrypt
[root@fredfred879 mcrypt]# ls
config.m4  config.w32  CREDITS  mcrypt.c  mcrypt.dsp  mcrypt_filter.c  php_mcrypt_filter.h  php_mcrypt.h  tests  TODO

然后运行:/usr/local/php5/bin/phpize   这是一个可执行的文本文件,要确保它在系统中会发现当前目录下多了一些configure文件。

[root@fredfred879 mcrypt]# /usr/local/php5/bin/phpize
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
[root@fredfred879 mcrypt]#
运行完,显示的结果应该就是上面的那三行,如果多了几行那就是有错误。原因应该是有些东西没安装。解决方式在我其他的博客中,你可以在我其他的博客中找一下。(如果我写了的话)。

然后运行:[root@fredfred879 mcrypt]# ./configure --with-php-config=/usr/local/php5/bin/php-config

然后运行:[root@fredfred879 mcrypt]# make && make install
然后在运行:[root@fredfred879 mcrypt]# vi /usr/local/php5/etc/php.ini  进入配置文件添加extension="/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/mcrypt.so"(要根据你自己的路径决定)

;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_exif.dll      ; Must be after mbstring as it depends on it
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll
extension="/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/mcrypt.so"

然后保存退出。(如果没有php.ini这个文件的同学,可以找找我其他的文章来解决,如果我写了的话!)

然后就ok了

增加openssl的配置

我是从之前的PHP源码编译安装的。因为我之前的PHP源码还在的。

01
02
03
04
05
06
07
08
09
10
11
 cd /root/soft/php-5.6.30/ext/openssl
 
/usr/local/php/bin/phpize
Cannot find config.m4.
Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module
 
mv config0.m4 config.m4
  
./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
 
make && make install

进入到/usr/local/php/etc/php.ini增加

1
extension=openssl.so

如果extension=openssl.so不行就按上面那样把路径写全。至于这是什么原因会导致有些要写全有些不用写全,你可以在我的博客里找找看,如果我写了的话!

为目录设置正确的写权限

/app/storage这个目录是laravel的一些写文件的目录,会写log、session、页面缓存等数据,所以要对这个目录设置正确的权限。

如果你为了方便设置chmod +777 app/storage也是可以的。但是我还是不推荐。

我推荐将目录的权限设置为会写文件的用户名和用户组。

1
2
3
4
5
6
chmod -R 777 app/storage
#访问一下网页,看看是否有输出。
#进入到/app/storage/session的文件组是谁?我的是nobody
#这个是php的用户组,我的apache也是这个组
chmod -R 775 app/storage
chown -R :nobody app/storage

然后就能访问了。

原文地址:https://www.cnblogs.com/yangwenxin/p/6419279.html