老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略


Posted in PHP onMarch 20, 2016

一、首先安装MySql:
对于MySql来讲在整个过程中是相对独立的安装,并且我的ubuntu在以前做开发的时候就已经安装了MySql,所以以下只给出安装步骤:
 
1、安装MySql的服务:

sudo apt-get install mysql-server

      要注意的是安装过程中会提示你设置mysql的root账户的密码;其他就没什么需要注意的地方了。

2、安装MySql的客户端:

sudo apt-get install mysql-client

直接输入安装

3、安装MySql的lib依赖库:

sudo apt-get install libmysqlclient15-dev

进行安装。
        如果不安装的话会在系统中找不到mysql.h
       
4、MySQL的一些简单管理:

       启动MySQL服务:

sudo start mysql

       停止MySQL服务:

sudo stop mysql

       修改 MySQL 的管理员密码:

sudo mysqladmin -u root password newpassword

       设置远程访问(正常情况下,mysql占用的3306端口只是在IP 127.0.0.1上监听,拒绝了其他IP的访问(通过netstat可以查看到)。取消本地监

     听需要修改 my.cnf 文件:):   

sudo vi /etc/mysql/my.cnf

    bind-address = 127.0.0.1 //找到此内容并且注释

      
5、MySQL安装后的目录结构分析(此结构只针对于使用apt-get install 在线安装情况):

      数据库存放目录:/var/lib/mysql/

      相关配置文件存放目录:/usr/share/mysql

      相关命令存放目录:/usr/bin(mysqladmin mysqldump等命令)

      启动脚步存放目录:/etc/rc.d/init.d/

以上就是MySql的基本安装了。

二、安装apache2:

1、官网下载http://httpd.apache.org/download.cgi,Unix Source: httpd-2.2.24.tar.gz,我下的是2.2.24版本的tar.gz,然后解压tar.gz

tar zxvf httpd-2.2.24.tar.gz

      把解压出来的文件移动到/usr/src/apache2
 

sudo mv -r httpd-2.2.24 /usr/src/apache2

如果没有apache2文件无法移动的话 手动创建一个

sudo mkdri /usr/src/apache2

由于修改/usr/下的文件需要root权限,所以需要加上sodu命令,加输入密码。

2、进入/usr/src/apache2/httpd-2.2.24,并且编译安装

cd /usr/src/apache2/httpd-2.2.24
   ./configure -prefix=/usr/local/apache -enable-module=so -enable-rewrite=shared -enable-authn-dbm

                                
      编译完成没错之后
      输入make命令,完成后输入:make install开始安装。

3、安装完成后配置httpd.conf:

vim /usr/local/apache2/conf/httpd.conf  #用编辑器打开httpd.conf 我用的是vim打开的

      找到#ServerName 将前面的注释符号#去掉  并且将后面的内容改成localhost:80 整句就是:
      ServerName localhost:80
      这样服务启动的时候可以通过localhost来进行访问。
      如果要修改服务器的监听端口的话可以在httpd.conf中查找Listen 80把 后面的80改成你想要的端口,在把ServerName localhost:80 后面的80改成你想要的端口。

4、启动服务:

cd /usr/local/apache2/bin #进入/usr/local/apache2/bin目录
   sudo ./apachectl start      #启动apache 服务

      然后打开游览器,输入访问地址localhost看看能否显示It Works,如果可以显示就说明已经安装完成。

三、安装配置PHP5

1、首先安装libxml2库,用来解析xml的的lib库输入:sudo apt-get install libxml2-dev 进行安装

2、官网下载php http://www.php.net/downloads.php 然后解压下载来的tar.gz包

tar zxvf php-5.4.15.tar.gz           #解压
    sudo mv -r php-5.4.15 /usr/src/php5 #移动到/usr/src/php5目录下

3、编译安装php

cd /usr/src/php/php-5.4.15  #进入php所在目录
    ./configure  
    -prefix=/usr/local/php5   #php安装目录
    -with-apxs2=/usr/local/apache2/bin/apxs  #apxs所在的目录,如果没有就sudo find / -name apxs 查询一下所在的目录
    -with-mysql=/usr/   #这个是查找mysql.h的目录,不知道为什么我的mysql.h在/usr/include/中 但是 写这个路径没用必须写/usr/ 如果不知道mysql.h在哪就 sudo find / -name mysql.h查找一下
    -with-mysqli=/usr/bin/mysql_config #mysql_config所在的目录,如果不再这个目录就find一下。
    -with-gd  #打开对gd库的支持,如果应为这个报错,就安装一下gd库
    -with-pear #打开pear命令的支持
    -with-libxml-dir  #打开对刚刚安装的libxml2的支持

       整条编译语句是:

./configure -prefix=/usr/local/php5 -with-apxs2=/usr/local/apache2/bin/apxs -with-mysql=/usr/  -with-mysqli=/usr/bin/mysql_config -with-gd  -with-pear -with-libxml-dir

      如果编译时出现error的话 一般都是 依赖库lib 出问题,看提示缺少什么依赖库,然后安装一下就行。
      完成后make一下 然后再输入make install进行安装。
 
4、手动指定php.ini文件:
      打开/usr/local/apache2/conf/httpd.conf,在LoadModule php_module     modules/libphp5.so这行下面加入PHPIniDir /etc/php.ini 指定php.ini的路径,然后进入你解压的php-5.4.15.tar.gz的目录将php.ini-development复制到你指定的路劲/etc里并且重命名为php.ini:
cd /usr/src/php/php-5.4.15 #进入php目录
   sudo cp php.ini-development /etc #复制到/etc
   sudo mv php.ini-development php.ini #重命名为php.ini

5、修改httpd.conf中的php支持和默认访问index.php:
      打开/usr/local/apache2/conf/httpd.conf,把<Directory />中的内容改成:

<Directory  />
   Options FollowSymLinks
   DirectoryIndex index.php index.html  #指定默认先查找index.php 如果没有就查找index.html
   AllowOverride None
   Order deny,allow
   Deny from all
   </Directory>

     接着在AddType application/x-gzip .gz .tgz下面一行中加入:

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

     完成后保存文件,如果提示文件是只读模式无法保存的话,那么肯定是权限不够在用打开httpd.conf的命令时 要加上sudo
 
6、启动\重启apache服务,在服务器根目录下编写php文件

sudo /usr/local/apache2/bin/apachectl stop #停止服务
   sudo /usr/local/apache2/bin/apachectl start #启动服务
   sudo /usr/local/apache2/bin/apachectl rstart #重启服务

     
cd /usr/lcoal/apache2/htdocs #进入apache2默认根目录

      创建一个index.php文件 在里面编写<?php echo phpinfo();?>然后打开游览器输入localhost看看能否显示php的信息,如果可以则配置成功。

四、其他配置:
    
1、手动配置apache的默认的根目录
      用编辑器打开/usr/local/apache2/conf/httpd.conf目录然后找到DocumentRoot /usr/lcoal/apache2/htdocs把这个路径改成你要的路径 然后在往下一点找到<Directory "/usr/lcoal/apache2/htdocs">把里面的路径也改成你想要指定的路径就可以了。

2、查看php.ini所在的路径:
      很多时候不知道指定php.ini的路径在哪看,只要编写<?php echo phpinfo();?>文件 然后用游览器访问,看到php所有信息之后 找到:Loaded Configuration File这一行的 右边的路径信息 就是指定的php.ini路径的地址了。
      
     

PHP 相关文章推荐
phpMyAdmin2.11.6安装配置方法
Aug 24 PHP
理解php原理的opcodes(操作码)
Oct 26 PHP
解析dedecms空间迁移步骤详解
May 15 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
php微信公众开发之获取周边酒店信息的方法
Dec 22 PHP
php实现按照权重随机排序数据的方法
Jan 09 PHP
PHP连接access数据库
Mar 27 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
Mar 21 PHP
详解Yii2 定制表单输入字段的标签和样式
Jan 04 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
Jun 17 PHP
php实现每日签到功能
Nov 29 PHP
Zend Framework入门知识点小结
Mar 19 #PHP
Zend Framework缓存Cache用法简单实例
Mar 19 #PHP
Zend Framework基本页面布局分析
Mar 19 #PHP
Zend Framework连接Mysql数据库实例分析
Mar 19 #PHP
Zend Framework+smarty用法实例详解
Mar 19 #PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 #PHP
smarty学习笔记之常见代码段用法总结
Mar 19 #PHP
You might like
php自动加载的两种实现方法
2010/06/21 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
PHP编写文件多服务器同步程序
2016/07/02 PHP
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
2013/03/05 Javascript
js简单的弹出框有关闭按钮
2014/05/05 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
2017/12/24 jQuery
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
Vue如何提升首屏加载速度实例解析
2020/06/25 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
跟老齐学Python之总结参数的传递
2014/10/10 Python
Python的Django框架可适配的各种数据库介绍
2015/07/15 Python
python实现ID3决策树算法
2017/12/20 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
Python中最大递归深度值的探讨
2019/03/05 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
viagogo法国票务平台:演唱会、体育比赛、戏剧门票
2017/03/27 全球购物
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
汽车工程专业应届生求职信
2013/10/19 职场文书
中专生的个人自我评价
2013/12/11 职场文书
户外婚礼策划方案
2014/02/08 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
社会实践活动报告
2015/02/05 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis