搭建LAMP环境运行laravel框架

因任务要求,需要在linux平台搭Laravel环境,之前都是windows平台下使用的,结果因为各种软件版本问题,弄了一两天才基本OK,记录一下。


一、准备工作,下载LAMP软件及依赖软件:


1、apr-1.4.6.tar.gz

2、apr-util-1.5.1.tar.gz

3、pcre-8.32.tar.gz

4、httpd-2.4.3.tar.gz

5、MySQL-5.6.15-1.el6.i686.rpm-bundle.tar

6、php-5.5.26.tar.gz


二、安装Apache

参考来源:http://blog.163.com/ji_1006/blog/static/1061234120140765023415/

这个是下载地址

http://pan.baidu.com/share/link?shareid=169366&uk=1829018343


1、  apr-1.4.6.tar.gz

tar xzf apr-1.4.6.tar.gz

./configure --prefix=/usr/local/apr

make && make install

 

2、  apr-util-1.5.1.tar.gz

tar xzf apr-util-1.5.1.tar.gz

./configure --with-apr=/usr/local/apr

make && make install

 

3、  prce

tar xzf pcre-8.32.tar.gz

./configure --prefix=/usr/local/prce

make && make install 

(如果上面安装过程出现/bin/rm: cannot remove `libtoolT’: No such file or directory这个问题,解决办法 vi configure 找到$RM “$cfgfile”这行删掉)

 

4、  apache

tar xzf httpd-2.4.3.tar.gz

./configure -prefix=/usr/local/apache --with-apr=/usr/local/apr/ --with-pcre=/usr/local/prce/

make && make install

检查一下apache是否正确安装

/usr/local/apache/bin/apachectl -t

(出现AH00557: httpd: apr_sockaddr_info_get() failed for Chunk3这个问题,解决办法, vi /usr/local/apache/conf/httpd.conf 找到#ServerName www.example.com:80 这行,把注释拿掉,然后改成ServerName localhost:80)

启动apache

 service httpd start

(出现httpd: unrecognized service这个问题,解决办法

         #cd /usr/local/apache/bin/

         #cp apachectl /etc/rc.d/init.d/httpd

         #vi /etc/rc.d/init.d/httpd

         在#!/bin/sh这行下增加

         # chkconfig: 2345 50 90

         # description:Activates/Deactivates Apache Web Server)

三、安装Mysql

  参考来源:http://my.oschina.net/u/1866821/blog/493866?fromerr=Mldioy95

1. 下载MySQL 5.6 
下载页面:http://dev.mysql.com/downloads/mysql/
此处选择“Red Hat Enterprise Linux 6 / Oracle Linux 6 (x86, 32-bit), RPM Bundle”下载,下载至/root/Downloads/目录下,下载文件名为“MySQL-5.6.15-1.el6.i686.rpm-bundle.tar”



2.检查安装

在安装MySQL之前,先检查CentOS系统中是否已经安装了一个MySQL,如果已经安装先卸载,不然会导致安装新的MySQL失败。 

rpm -qa | grep mysql   --查看系统之前是否已安装MySQL。 

mysql-libs-5.1.47-4.el6.i686  显示结果说明 CentOS6.0系统自带了一个MySQL,我们需要删除这个老版本,用root用户执行下面语句

su - 

密码:

rpm -e --nodeps mysql-libs-5.1.47-4.el6.i686  

先切换到"root"用户下,然后执行删除语句,删除之后,我们再次查看,发现已经成功删除了CentOS6.0自带的旧MySQL版本。

在删除MySQL的rpm后,还要进行一些扫尾操作,网上有两种操作。(备注:我在这里两种都没有用到,发现系统中并没有其他残余的MySQL信息。)

第一种善后处理:使用下面命令进行处理。

rm -rf /var/lib/mysql*

rm -rf /usr/share/mysql*

另一种善后处理:卸载后 /var/lib/mysql 中的  /etc/my.cnf 会重命名为 my.cnf.rpmsave,/var/log/mysqld.log 会重命名为 /var/log/mysqld.log.rpmsave,如果确定没用后就手工删除。



3. 解压tar包
cd /root/Downloads/
tar -xvf MySQL-5.6.15-1.el6.i686.rpm-bundle.tar

4. 以RPM方式安装MySQL
在RHEL系统中,必须先安装“MySQL-shared-compat-5.6.15-1.el6.i686.rpm”这个兼容包,然后才能安装server和client,否则安装时会出错。
yum install MySQL-shared-compat-5.6.15-1.el6.i686.rpm  # RHEL兼容包
yum install MySQL-server-5.6.15-1.el6.i686.rpm              # MySQL服务端程序
yum install MySQL-client-5.6.15-1.el6.i686.rpm                # MySQL客户端程序
yum install MySQL-devel-5.6.15-1.el6.i686.rpm                # MySQL的库和头文件
yum install MySQL-shared-5.6.15-1.el6.i686.rpm              # MySQL的共享库

rpm -ivh MySQL-server-5.6.15-1.el6.i686.rpm

rpm -ivh MySQL-client-5.6.15-1.el6.i686.rpm

5. 配置MySQL登录密码
cat /root/.mysql_secret  # 获取MySQL安装时生成的随机密码
service mysql start      # 启动MySQL服务
mysql -uroot -p          # 进入MySQL,使用之前获取的随机密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');  # 在MySQL命令行中设置root账户的密码为password
quit  # 退出MySQL命令行
service mysql restart  # 重新启动MySQL服务

#添加mysql用户
useradd mysql -M -s /sbin/nologin 

cd /opt/mysql/scripts 

#安装数据库
./mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data 

cd /opt/mysql/support-files 

#复制mysql管理脚本
cp mysql.server /etc/rc.d/init.d/mysql 

#复制mysql配置文件
cp my-default.cnf /etc/my.cnf 

#添加mysql服务
chkconfig --add mysql 

#加入开机启动策略
chkconfig mysql on 

service mysql start

四、安装PHP

http://cn2.php.net/get/php-5.4.8.tar.gz/from/this/mirror


1、解压包php-5.5.26.tar.gz

2、进入php-5.5.26,

 ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql --with-mysqli --with-iconv-dir --with-zlib --with-libxml-dir --enable-xml --with-curl --enable-fpm --enable-mbstring --with-gd --with-openssl --with-mhash --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-libdir=/usr/lib64 --with-jpeg-dir=/usr/lib64 --with-freetype-dir=/usr/lib64 --with-png-dir=/usr/lib64


3、配置服务器httpd.conf

编辑 /work/installed/conf/httpd.conf 文件    (别人有的自定义安装的目录/usr/local/apache/conf/httpd.conf     
     找到:
    AddType  application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    在后面添加:
    AddType application/x-httpd-php .php

    AddType application/x-httpd-php-source .php5   

    目的是使Apcche支持PHP

找到:
    <IfModule dir_module>
    DirectoryIndex index.html
    </IfModule>
    添加:在index.html后面添加index.php就行啦! 
    <IfModule dir_module>
    DirectoryIndex index.html index.php
    </IfModule>  

打开LoadModule rewrite_module modules/mod_rewrite.so模块

4、重启httpd

 /etc/init.d/httpd restart


五、遇到的问题

问题1:为了让其他电脑访问,简单的方法是关闭防火前,不推荐 使用命令  /etc/rc.d/init.d/iptables stop

合理的方法是使用iptables规则,如下


关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放。
下面是命令实现:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
再用命令 iptables -L -n 查看 是否设置好, 好看到全部 DROP 了
这样的设置好了,我们只是临时的, 重启服务器还是会恢复原来没有设置的状态
还要使用 service iptables save 进行保存
看到信息 firewall rules 防火墙的规则 其实就是保存在 /etc/sysconfig/iptables
可以打开文件查看 vi /etc/sysconfig/iptables

参考博客  http://hi.baidu.com/beijiqieys/item/5ee9bbcf94f0a712b67a24cf


问题2:yum安装的mysql版本为5.1.7,默认latin字符,需要修改为utf-8。vi  /etc/my.cnf文件,添加default-character-set=utf8,如下

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-character-set=utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
default-character-set=utf8

问题3:项目使用了mb_substr函数以及soap协议,php默认没安装,yum install php-mbstring 以及 yum install php-soap,重启apache,/etc/init.d/httpd restart



问题4:默认apache指向/var/www/html目录,如果我要指向 /var/www/html/project ,修改httpd.conf

vi  /etc/httpd/conf/httpd.conf  命令,查找/var/www/html改为/var/www/html/project,重启apache服务即可,/etc/init.d/httpd restart



问题5:项目必须有读写权限

使用chmod -R **命令


问题6:[PDOException]         
  could not find driver 

参考来源:http://blog.csdn.net/liruxing1715/article/details/8268513

1、进入 PHP 的软件包 pdo 扩展目录中(注:不是 PHP 安装目录)

[plain] view plaincopy
[root@gamejzy /]# cd /tmp/lamp/php-5.3.19/ext/pdo_mysql/  
注:我的 php 软件包在 /tmp/lamp/php-5.3.19 下
执行 phpize 命令
[plain] view plaincopy
[root@gamejzy pdo_mysql]# /usr/local/php/bin/phpize  

注:/usr/local/php 是我的 php 安装目录
执行完 phpize 命令后,在 pdo_mysql 目录中就会出现 configure
执行配置
[plain] view plaincopy
[root@gamejzy pdo_mysql]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql/  
如果出现
checking for mysql_config... not found
configure: error: Unable to find your mysql installation
说明路径不对,通过whereis命令查看正确的路径

whereis php-config

whereis mysql  //我的mysql路径/usr/bin/mysql,则修改如下

./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr



参数说明:
--with-php-config=/usr/local/php/bin/php-config 指定安装 PHP 的时候的配置
--with-pdo-mysql=/usr/local/mysql/ 指定 MySQL 数据库的安装目录位置
编译安装
[plain] view plaincopy
[root@gamejzy pdo_mysql]# make && make install  

编译完成之后,请注意是否出现类似以下图片所示信息

如果出现说明编译安装成功,请十分注意红线圈住的目录(注意:不同时间段目录名称可能不一样)。
编译安装完成之后,生成的 pdo_mysql.so 文件就放置在这个目录下。
2、修改 php.ini 文件
使用 vi 打开你机器的 php.ini 文件,添加一段代码“extension=/usr/local/php/lib/php/extensions/no-debug-zts-20121212/pdo_mysql.so”,加载 pdo_mysql.so 文件
效果如下图:

保存退出编辑!
3、查看 phpinfo()
首先重启 Apache 服务器。使用 phpinfo() 函数查看 php 的安装信息,PDO mysql说明 PDO 扩展安装成功

问题7:mcrypt扩展不存在

参考来源:http://www.osyunwei.com/archives/7421.html

在不影响网站访问的情况下,重新编译php,增加对mcrypt扩展的支持

具体操作:

一、下载软件包

1、下载php(版本要与系统安装的一致)

http://museum.php.net/php5/php-5.4.4.tar.gz

2、下载libmcrypt(安装mcrypt需要此软件包)

http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

3、下载mhash(安装mcrypt需要此软件包)

https://acelnmp.googlecode.com/files/mhash-0.9.9.9.tar.gz

4、下载mcrypt

https://lcmp.googlecode.com/files/mcrypt-2.6.8.tar.gz

以上软件包下载之后,上传到/usr/local/src目录

二、安装软件包

1、安装libmcrypt

cd /usr/local/src  #进入软件包存放目录

tar zxvf libmcrypt-2.5.8.tar.gz  #解压

cd libmcrypt-2.5.8  #进入安装目录

./configure  #配置

make  #编译

make install  #安装

2、安装mhash

cd /usr/local/src

tar zxvf mhash-0.9.9.9.tar.gz

cd mhash-0.9.9.9

./configure

make

make install

3、安装mcrypt

cd /usr/local/src

tar zxvf mcrypt-2.6.8.tar.gz

cd mcrypt-2.6.8

ln -s   /usr/local/bin/libmcrypt_config   /usr/bin/libmcrypt_config  #添加软连接

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH  #添加环境变量

./configure

make

make install

三、重新编译php

1、查看系统之前安装的php编译参数

系统运维  www.osyunwei.com  温馨提醒:qihang01原创内容 版权所有,转载请注明出处及原文链接

/usr/local/php/bin/php -i |grep configure  #查看php编译参数,记录下编译参数,后面会用到

2、安装php

cd /usr/local/src

tar zxvf php-5.4.4.tar.gz

cd php-5.4.4

'./configure' '--prefix=/usr/local/php' '--enable-mbstring=all' '--with-config-file-path=/usr/local/php/etc' '--with-zlib' '--with-mysql=/usr/local/mysql-5.1.38/' '--with-gd' '--with-mysqli=/usr/local/mysql-5.1.38/bin/mysql_config' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--enable-fpm' '--enable-soap' '--with-freetype-dir=/usr/lib64' '--with-iconv=/usr/local' '--with-curl' '--with-mcrypt'

#在之前的编译参数后面增加'--with-mcrypt' 回车

make  #编译

make install  #安装

/usr/local/src/php-5.4.4/sapi/fpm/init.d.php-fpm  reload  #重新加载php-fpm

四、测试mcrypt扩展是否已安装成功

在网站目录下新建一个info.php测试页面,写上下面代码,保存

<?php

phpinfo();

?>

问题8:Mcrypt响应慢,mcrypt_create_iv函数执行半天无响应。

参考来源:http://www.laruence.com/2012/09/24/2810.html

将代码处分别尝试以下3个值。

mcrypt_create_iv($i,0);
define ('MCRYPT_DEV_RANDOM', 0);

define ('MCRYPT_DEV_URANDOM', 1);

define ('MCRYPT_RAND', 2);

问题9:laravel首页运行时laravel/public到不页面,或laravel/public/auth/login找不到,或者php页面直接源码输出了。

说明是路由的问题,服务器配置不对。(windows平台是否加了以下配置)

# php5 support
LoadModule php5_module "C:/phpEnv/php/php5apache2_4.dll"
AddType application/x-httpd-php .php .php5 .html .htm
# configure thepath to php.ini
PHPIniDir "C:/phpEnv/php"  #这个路径需要加到系统环境变量中。

检查<Directory />内配置是否为:

Options +Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted

apache开启.htaccess及.htaccess的使用方法
可以参考:http://www.jb51.net/article/25476.htm











本博客所有文章如无特别注明均为原创。作者:zz复制或转载请以超链接形式注明转自 沉思录
原文地址《搭建LAMP环境运行laravel框架

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)