当前位置: 首页 > news >正文

linux mysql apache php 安装_Linux下Apache+MySQL+PHP的安装与配置

(1)Apache的安装与配置

思路:首先在官网下载APACHE源码,本系统下载版本为httpd-2.2.17.tar.gz,下面几步为在终端的配置命令

tar zxvf httpd-2.2.17.tar.gz

cd httpd-2.2.17

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

make

make install

service httpd start

如果出现:

Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 222.31.76.227 for ServerName

[OK]

说明安装成功!

如果希望apache开机自启动的话,可以通过以下命令在/etc/rc.d/rc.local加入自启动命令:

echo "service httpd start">>/etc/rc.d/rc.local

测试Apache

在/var/www/html目录下建立index.html文件

Welcome to Apache!!

保存后,在浏览器上输入http://XXX.XXX.XXX.XXX(Web服务器的IP)查看结果

注意:iptables必须关闭或者将80端口加到iptables中

(2)Mysql-client的安装与配置

思路:由于MYSQL没有源码包可以下载,所以本系统使用MYSQL的二进制安装包,使用版本为mysql-5.5.10-linux2.6-x86_64.tar.gz,下面几步为在终端的配置命令(可直接粘贴)

tar zxvf mysql-5.5.10-linux2.6-x86_64.tar.gz

cd /usr/local

ln -s /home/software/mysql-5.5.10-linux2.6-x86_64 mysql

cd mysql/

vi INSTALL-BINARY

看到以下部分为安装步骤

To install and use a MySQL binary distribution, the basic command

sequence looks like this:

shell> groupadd mysql

shell> useradd -r -g mysql mysql

shell> cd /usr/local

shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz

shell> ln -s full-path-to-mysql-VERSION-OS mysql

shell> cd mysql

shell> chown -R mysql .

shell> chgrp -R mysql .

shell> scripts/mysql_install_db --user=mysql

shell> chown -R root .

shell> chown -R mysql data

# Next command is optional

shell> cp support-files/my-medium.cnf /etc/my.cnf

shell> bin/mysqld_safe --user=mysql &

# Next command is optional

shell> cp support-files/mysql.server /etc/init.d/mysql.server //开机自启动(后面还需几步)

如果已经安装在安装操作系统时已经安装过MYSQL,那么前6步(高亮部分)目前已经完成

(需要注意的是data目录下存放的就是一个又一个数据库,所以,必须将权限设置为mysql,否则,mysql本身进不去,配置就会失败)

chown -R mysql.mysql .

scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/

chown -R root .

chown -R mysql data

cp support-files/my-medium.cnf /etc/my.cnf

bin/mysqld_safe --user=mysql&

service mysqld start

若显示:

Starting MySQL..[OK]

则说明mysql已成功启用!

使用mysql_install_db --user=mysql创建新的MySQL授权表,使用者为mysql

使用mysqld_safe --user=mysql &以用户名user_name或数字用户ID user_id运行mysqld服务器。(本文中的“用户”指系统登录账户,而不是授权表中的MySQL用户)

让MYSQL自启动

cp support-files/mysql.server /etc/init.d/mysqld

chmod 700 /etc/init.d/mysqld

chkconfig --add mysqld

如果遇到以下问题:

启动MYSQL出错,提示:Starting mysqld daemon with databases from /usr/local/mysql/data

STOPPING server from pid file /usr/local/mysql/data/xmcncn.pid

061103 15:25:32  mysqld ended解决方法:vi /etc/my.cnf看看[mysqld]下有没有port  = 3306添加上就可以了touch /tmp/mysql.sock

killall -9 mysqld

/usr/local/mysql/bin/mysqld_safe -user=mysql &成功启动

(3)php的安装与配置

首先,安装php前,以下包可能会需要安装:zlib-1.2.3.tar.gz、libpng-1.2.24.tar.gz、freetype-2.3.11.tar.gz、libtool-2.4.tar.gz、jpegsrc.v6b.tar.gz、autoconf-2.61.tar.gz、gd-2.0.35.tar.gz、libxml2-2.7.3.tar.gz

在官网下载php源码,本系统下载版本为php-5.3.6.tar,下面几步为在终端的配置命令(可直接粘贴)

cd /home/software/

tar -xvf php-5.3.6.tar

cd php-5.3.6

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql

配置后若如下显示License,则说明成功,否侧可能还缺少上述的包。

checking whether -lc should be explicitly linked in... no

checking dynamic linker characteristics... GNU/Linux ld.so

checking how to hardcode library paths into programs... immediate

checking whether stripping libraries is possible... yes

creating libtool

appending configuration tag "CXX" to libtool

Generating files

updating cache ./config.cache

creating ./config.status

creating main/internal_functions.c

creating main/internal_functions_cli.c

+----------------------------------------------------------------------------------------+

| License:|

| This software is subject to the PHP License, available in this|

| distribution in the file LICENSE.By continuing this installation |

| process, you are bound by the terms of this license agreement.|

| If you do not agree with the terms of this license, you must abort |

| the installation process at this point.|

+-----------------------------------------------------------------------------------------+

Thank you for using PHP.

make

make test//可以不做

make install

cp php.ini-development /etc/php.ini

vi /usr/local/apache/conf/httpd.conf

加入一句话:

AddType application/x-httpd-php .php

cd /var/www/html

vi index.php

新建php测试代码为:

phpinfo();

?>

重启apache,重启前要先修改/etc/selinux/config,将SELINUX=enforcing改成SELINUX=disabled:

vi /etc/selinux/config

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#enforcing - SELinux security policy is enforced.

#permissive - SELinux prints warnings instead of enforcing.

#disabled - SELinux is fully disabled.

SELINUX=disabled

# SELINUXTYPE= type of policy in use. Possible values are:

#targeted - Only targeted network daemons are protected.

#strict - Full SELinux protection.

SELINUXTYPE=targeted

service httpd restart

出现以下语句说明重启成功:

Stopping httpd:[OK]

Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 222.31.76.227 for ServerName

[OK]

在浏览器输入http://XXX.XXX.XXX.XXX/index.php,若显示phpinfo信息说明php配置成功。

若能显示phpinfo信息,但发现无法连接数据库(没有MYSQL的信息),说明php与mysql相连的模块包没有安装成功,可尝试下载安装php-mysql的rpm包(php-mysql-5.1.6-27.el5.x86_64.rpm),安装它还需先安装php-pdo的rpm包(php-pdo-5.1.6-27.el5.x86_64.rpm),pdo就是专门用于连接php和mysql的。

在以后的web端配置安装时,若phpinfo的基本信息能正常显示,但缺少某个模块功能,可单独下载其对应的rpm包,安装即可。

在/var/www/html下新建一个test.php,用于测试连接远程数据库:

Web2

echo "Hello World!";

$db=mysql_connect("远程服务器IP","用户名","password") or die ("mysql connected failed! ");

mysql_select_db("数据库名",$db);

$sql="select * from users";

$result=mysql_fetch_row(mysql_query($sql));

print_r($result);

?>

在浏览器输入http://XXX.XXX.XXX.XXX/test.php,若能显示数据库中相应信息说明php与远程数据库连接成功。

相关文章:

  • mysql自动判断索引机制_关于mysql 索引自动优化机制: 索引选择性(Cardinality:索引基数)...
  • mysql左表有右表没有_查询左表存在而右表不存在的记录
  • python编程语言轻松入门_Python快速入门
  • c#打开mysql表格_使用C#更新mySQL表
  • arcgis python add in崩溃_arcgis python 异常处理
  • mysql5.7.17 win10_MySQL数据库之mysql 5.7.17 安装配置方法图文教程(windows10)
  • 多态 java_Java的多态(深入版)
  • java循环三角形_java用循环画三角形思路
  • 面试题java的泛型_Java高级面试 —— Java的泛型实现机制是怎么样的?
  • java 内存 新生代_JVM源码分析之堆内存的初始化
  • wsdl soap java_[Java] webservice soap,wsdl 例子
  • 人人网java面试题_人人网Java开发工程师笔试题
  • java国家排序_Java各种排序算法汇总(冒泡,选择,归并,希尔及堆排序等)
  • java json 增删查改_Java基础开发之JDBC操作数据库增删改查,分页查询实例详解
  • java socket发送中文乱码_java Socket接收数据乱码问题
  • 10个确保微服务与容器安全的最佳实践
  • 78. Subsets
  • angular组件开发
  • Python中eval与exec的使用及区别
  • React组件设计模式(一)
  • TypeScript迭代器
  • Vue.js源码(2):初探List Rendering
  • Vue2 SSR 的优化之旅
  • 从tcpdump抓包看TCP/IP协议
  • 从零搭建Koa2 Server
  • 基于Android乐音识别(2)
  • 漂亮刷新控件-iOS
  • 前端_面试
  • 前端临床手札——文件上传
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 我的面试准备过程--容器(更新中)
  • 消息队列系列二(IOT中消息队列的应用)
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 优秀架构师必须掌握的架构思维
  • 原生js练习题---第五课
  • 【云吞铺子】性能抖动剖析(二)
  • ionic异常记录
  • ​​​​​​​​​​​​​​Γ函数
  • ​flutter 代码混淆
  • #14vue3生成表单并跳转到外部地址的方式
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (转)菜鸟学数据库(三)——存储过程
  • (转载)OpenStack Hacker养成指南
  • **CI中自动类加载的用法总结
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .NET Core跨平台微服务学习资源
  • .Net Core与存储过程(一)
  • .net 怎么循环得到数组里的值_关于js数组
  • .net打印*三角形
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • [1181]linux两台服务器之间传输文件和文件夹
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [Android Pro] Notification的使用