>  기사  >  백엔드 개발  >  Windows+Apache로 PHP 개발 환경 구축

Windows+Apache로 PHP 개발 환경 구축

伊谢尔伦
伊谢尔伦원래의
2016-11-24 14:22:091249검색

1단계: 설치 파일 다운로드

1. Apache 버전 httpd-2.2.21-win32-x86-no_ssl.msi
2. MySQL 버전 mysql-5.5.19-win32.msi
3. PHP 버전 php-5.3.5-Win32-VC6-x86.zip
4. phpMyadmin 버전 phpMyAdmin-3.4.9-all-언어s.zip

팁:
1 . 개발을 완료하려면 SSL 기능이 없는 Apache 버전을 선택하는 것이 권장되므로 여기서는 Apache 2.2.21-win32-x86-no ssl.msi를 사용합니다.
2. Windows에서 MySQL을 설치하려면 .msi 설치 패키지 형식을 선택합니다. mysql-5.5.19-win32.msi를 선택하면 설치가 간단하고 편리합니다.
3. PHP의 경우 Windows .zip 버전인 php-5.3.5-Win32-VC6-x86.zip을 사용하도록 선택합니다. 보안이나 성능면에서는 zip 버전이 더 좋고, 이 버전은 일반적으로 서버에 설치됩니다.
VC9은 IIS용으로 특별히 맞춤 제작된 반면 VC6는 Apache나 기타 WEB 서비스 소프트웨어용으로 제공되므로 NTS 버전이나 VC9 버전을 다운로드하지 마세요.
4. phpMyAdmin은 PHP 기반의 온라인 MySQL 관리 도구입니다. phpMyAdmin3을 설치할 때 필요한 PHP 환경은 최소한 PHP5.2 및 MySQL5 이상입니다.

2단계: 설치 파일

1. 설치할 디스크에 폴더를 만듭니다. 관리의 편의를 위해 D 드라이브의 루트 디렉터리에 WAMP 폴더를 생성합니다. D:WAMP (WAMP는 windows+apache+mysql+php의 약어입니다).
2. WAMP 폴더 아래에 WWW 폴더를 생성하여 PHP 웹사이트 프로그램을 저장합니다. D:WAMPWWW.
3. Apache 서버를 설치하고 D:WAMPApache 폴더에 Apache 서버를 설치합니다. 구체적인 Apache 설치 프로세스는 Apache 설치 다이어그램 문서를 참조하세요.
4. 다운로드한 php-5.3.5-Win32-VC6-x86을 D:WAMPPHP 폴더에 압축을 풉니다.
5. MySql 데이터베이스를 설치하고 D:WAMPMySQL 폴더에 MySQL을 설치합니다. 구체적인 MySQL 설치 프로세스는 MySQL 설치 다이어그램 문서를 참조하세요.
6. phpMyAdmin-3.4.9-all-언어s.zip의 압축을 푼 다음 이름을 phpMyAdmin으로 바꾸고 PHP 웹사이트 프로그램 디렉터리에 복사합니다. 결과는 D:WAMPWWWphpMyAdmin입니다.

3단계: Apache 구성

먼저 텍스트 편집 도구(EditPlus 권장)를 사용하여 D:WAMPApacheconfhttpd.conf 파일을 엽니다. 다음 단계는 다음과 같습니다. 이 파일의 내용을 수정합니다.
httpd.conf 파일을 수정한 후 새 설정을 적용하려면 Apache 서비스를 다시 시작해야 합니다.

1. 수신 포트를 설정합니다

httpd.conf 파일을 연 후 Listen(아마도 46번째 줄)을 찾아 다음과 같이 그 뒤의 숫자를 8080으로 변경합니다.

 Listen 8080

이 매개변수는 Apache 서버의 수신 포트를 설정하는 데 사용됩니다. 기본값은 80입니다. 8080으로 변경하는 이유는 Windows 2003 시스템의 IIS 포트 번호와의 충돌을 피하기 위해서입니다. IIS를 활성화하지 않으면 기본 포트 번호인 80을 사용할 수도 있습니다.

2. Apache가 PHP 모듈을 로드하도록 합니다.

#LoadModule vhost_alias_module module/mod_vhost_alias.so(약 128번째 줄)를 찾아 이 줄 뒤에 다음 콘텐츠를 추가합니다.

LoadModule php5_module "D:/WAMP/PHP/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "D:/WAMP/PHP"

LoadModule php5_module "D:/WAMP/PHP/php5apache2_2.dll"
이 문장은 모듈 모드에서 PHP5 모듈을 로드하라는 의미입니다.
AddType application/x-httpd-php .php
이 문장은 확장자가 .php인 파일을 PHP 스크립트로 실행한다는 의미입니다. .html, .php5 또는 PHP용 .txt 등 원하는 다른 확장자를 사용할 수 있습니다.
PHPIniDir "D:/WAMP/PHP"
이 문장은 PHP 구성 파일 php.ini가 있는 디렉터리를 지정하는 데 사용됩니다.
Apache 2가 모듈 모드에서 php5를 실행 중인 경우 PHPIniDir 지시문을 사용할 수 있습니다.

3. 웹사이트 저장 디렉터리 수정

아파치의 기본 웹사이트 저장 디렉터리는 아파치 설치 디렉터리의 htdocs 폴더라는 것을 알고 있습니다. 웹 사이트 저장소 디렉터리를 변경하는 경우 해당 Apache 구성을 수정해야 합니다.
구성 파일 httpd.conf에서 DocumentRoot(약 182행)를 찾아 웹 사이트 디렉터리의 올바른 폴더를 가리키도록 수정합니다. 여기서는

DocumentRoot "D:/WAMP/www"

으로 변경했습니다. 동시에 DocumentRoot를 설정한 대로 변경해야 합니다(약 207행). 그 아래에는 4cffacf2733cc31369199c7aefaf1664 줄이 있습니다. 수정하십시오. DocumentRoot 경로를 직접 구성하십시오. 여기서는 다음과 같이 수정했습니다.

<Directory "D:/WAMP/www">

4. 디렉토리 홈 페이지 파일을 수정합니다.

구성 파일 httpd.conf에서 DirectoryIndex index.html(약 244행)을 찾아 다음으로 수정합니다. :

DirectoryIndex index.html index.htm index.php

DirectoryIndex 指的是当客户浏览器访问的路径是一个目录时,Apache默认执行的文件。
以我们所修改的为例:当客户浏览器访问一个目录时,Apache会去找该目录下的index.html,如果没有再找index.htm,还没有再找 index.php。都找不到则默认显示该目录下的文件列表。参考文档:如果防止Apache显示文件列表

第四步:配置PHP

打开PHP安装目录,即D:\WAMP\PHP,我们可以看到目录下有两个这样的文件 php.ini-development 和 php.ini-production,第一个是开发使用的配置文件,第二个是生产环境的配置,因为我们是在本机做开发,所以选择前者。将php.ini-development复制一份到同目录下,并改名为 php.ini。这个php.ini 就是当前使用的配置文件,以下几步都是在修改这个php.ini文件的内容。要注意的是,修改php.ini文件后需重新启动Apache服务,新设置才会生效。

1. 指定PHP扩展库的存放目录

在Windows下PHP的扩展库通常以 DLL 形式存放在PHP的ext目录中。
使用文本工具打开php.ini文件,查找extension_dir = "ext"(大概在809行),也就是在 On windows 下面那一行。把它前面的分号“;”去除掉,改为如下:

 extension_dir = "D:/WAMP/PHP/ext"

extension_dir 表示PHP扩展库的具体目录,以便调用相应的DLL文件。

2. 开启相应的扩展库

默认情况下许多PHP的扩展库都是关闭的,比如默认PHP不支持连接Mysql数据库,需开启相应的扩展库。
这里我们开启一些常用的扩展库。
查找 ; Windows Extensions(大概在941行),在它的下面是extension列表。
找到如下扩展:

           ;extension=php_curl.dll
        ;extension=php_gd2.dll
        ;extension=php_mbstring.dll
        ;extension=php_exif.dll
        ;extension=php_mysql.dll
        ;extension=php_mysqli.dll
        ;extension=php_pdo_mysql.dll
        ;extension=php_pdo_odbc.dll
        ;extension=php_sockets.dll
        ;extension=php_xmlrpc.dll
        ;extension=php_xsl.dll

把以上extension 前面的分号 “;” 去掉。如果你希望加载其它扩展模块,方法相同,只要去掉前面的分号即可。
提示1:重启Apache提示 “unable to load dynamic library......php_curl.dll”,加载php_curl.dll错误。解决方法是拷贝 PHP 目录下的 libeay32.dll 和 ssleay32.dll 到 windows 目录或 windows/system32 目录下,只要是系统 Path 环境变量里包含的路径就可以。如果不想拷贝,你也可以直接把 PHP 路径放到系统 Path 环境变量里。 右击我的电脑=>属性=>高级=>环境变量=>系统变量里有个Path,双击打开,把你的PHP路径加个分号“;”再前面( ;D:\WAMP\PHP ),添加进去就OK了。重启Apache不再提示该错误。
提示2:Exif 扩展是用来显示图片的 exif 信息的,因为该扩展需要 mbstring.dll 支持,所以必须将 extension=php_exif.dll 这一行写到extension=php_mbstring.dll 的后面。
提示3:如果PHP自带的扩展库不能满足你的需要,你可以去 pecl.php.net 查找并下载你需要的库。windows用户可以去 pecl4win.php.net 或者 http://downloads.php.net/pierre/ 下载已经编译好的DLL文件,也可以去http://museum.php.net/php5/ 载PECL集合压缩包。
提示4:很多人在找php_zip.dll,其实从php5.3开始已经集成了zip扩展,直接使用就行了。你可以用e19378ad842b694e1b5442cf4ce21ead 找到zip扩展的说明。

3. 让PHP支持短标签

在 php.ini 配置文件查找 short_open_tag = Off (大概在266行)把它修改成:short_open_tag = On 让其支持短标签。
php的代码一般包含在79184d89c68e7248f3e40700b013c63b的标签内,设置 short_open_tag = On 之后,可以写成更简洁的形式:46eda650838d8b66cc68279407ec1898。

4. 配置PHP的Session功能

在使用session功能时,我们必须配置session文件在服务器上的保存目录。我们需要为session建立一个可读写的目录,这个目录最好独立于网站目录之外。
这里把目录上建在了D:\WAMP\sessiontmp,然后在 php.ini 配置文件中找 ;session.save_path = "/tmp" (大概在1467行),去掉前面的分号“;” ,改为如下:

session.save_path = "D:/WAMP/sessiontmp"

5. 配置PHP的文件上传功能

同session一样,在使用PHP文件上传功能时,我们必须要指定一个临时文件夹以完成文件上传功能,否则文件上传功能会失败。
我们建立一个可读写的目录文件夹 D:\WAMP\fileuploadtmp,然后在 php.ini 配置文件中找到 ;upload_tmp_dir = (大概875行),修改为:

upload_tmp_dir = "D:/WAMP/fileuploadtmp"

PHP默认上传文件大小不超过2M,要想上传大于2M的文件,请参考文档  配置php.ini实现文件上传功能。

6. 设置时区

在 php.ini 配置文件查找 ;date.timezone = (大概在993行),去掉前面的分号“;” 改为如下:

date.timezone = PRC

date.timezone是PHP5.1开始新增加的配置参数,用来设置时区。默认date.timezone是被注释掉的,也就是默认时区是UTC格林威治标准时间。
我们这里改为 date.timezone = PRC(PRC,People’s Republic of China,中华人民共和国),也就是日期使用中国的时区。这样可以解决时间相差八小时的问题。

第五步:配置phpMyAdmin

打开phpMyAdmin目录,即D:\WAMP\WWW\phpMyAdmin,我们可以看到目录下有一个config.sample.inc.php 文件,将这个文件复制一份到同目录下,并改名为 config.inc.php。这个config.inc.php 就是phpMyAdmin的配置文件,以下几步都是在修改这个config.inc.php 文件的内容。

1. 设置phpMyAdmin登录方式

打开config.inc.php文件,查找 $cfg['Servers'][$i]['auth_type'] ,设置如下:

   $cfg[&#39;Servers&#39;][$i][&#39;auth_type&#39;] = &#39;cookie&#39;;

这个参数的值设置为cookie,每次登录phpMyAdmin需要输入用户名密码。这也是phpMyAdmin的默认设置。

然后找到  $cfg['blowfish_secret'],设置如下:

$cfg[&#39;blowfish_secret&#39;] = &#39;admin10000.com&#39;;

此参数用于Cookies的加密,这是设置为admin10000.com,你可以改成自己的密码。

这里介绍一下phpMyAdmin 的四种登录方式:
cookie:这是phpMyAdmin配置默认的登录方式。需在登录界面输入MySQL的管理账号和密码。
           当选择cookie登录方式,还需要设置短语密码 $cfg['blowfish_secret'] ,这个密码用于Cookies的加密。
           例如:$cfg['blowfish_secret'] = 'admin10000.com';
           如果没有设置,登录phpMyAdmin会提示 “配置文件现在需要一个短语密码” 的错误。
config:直接在地浏览器地址栏输入phpMyAdmin登录地址即可登录,任何人都可以访问。用户名和密码提前在配置文件中设定好。
           此登录方式必须在配置文件中增加下面2行参数:
           $cfg['Servers'][$i]['user'] = '你的MySQL登录账号';
           $cfg['Servers'][$i]['password'] = '你的MySQL登陆密码;
           如果只是在本机器做开发,可以设置为config登录方式,省去每次输入密码的麻烦。
http:弹出一个对话框,输入用户名和密码后进入。
signon:类似于页面跳转的登录方式,同时需要设定$cfg['Servers'][$i]['SignonURL'],当你输入phpMyAdmin登录地址后会自动跳转到signonURL设定的网址。

2. 开启phpMyAdmin 高级功能

登录phpMyAdmin 后,在首页面的最下方会提示:“phpMyAdmin 高级功能未全部设置,部分功能不可用”。
现在我们来解决这个问题。使用phpMyAdmin的导入功能,导入phpMyAdmin/scripts/create_tables.sql 这个文件,从而建立必要的数据表。
接下来还需要新建一个MySQL用户,并授予其访问上一步操作建立的数据表的权限,这个MYSQL用户称为控制用户,为 phpMyAdmin 高级功能提供支持。
我们这里使用 pma 作为控制用户以及 pmapass 作为控制用户的密码。你可以自行更改。
在phpMyAdmin的SQL查询功能框中输入以下SQL代码:

  GRANT USAGE ON mysql.* TO &#39;pma&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;pmapass&#39;;
    GRANT SELECT (
        Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
        Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
        File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
        Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
        Execute_priv, Repl_slave_priv, Repl_client_priv
        ) ON mysql.user TO &#39;pma&#39;@&#39;localhost&#39;;
    GRANT SELECT ON mysql.db TO &#39;pma&#39;@&#39;localhost&#39;;
    GRANT SELECT ON mysql.host TO &#39;pma&#39;@&#39;localhost&#39;;
    GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
        ON mysql.tables_priv TO &#39;pma&#39;@&#39;localhost&#39;;

接着我们在 config.inc.php 中找到 User used to manipulate with storage 这一行。把它下面的2行参数注释(双斜杠“//”)去掉。结果为:

 $cfg[&#39;Servers&#39;][$i][&#39;controluser&#39;] = &#39;pma&#39;;
        $cfg[&#39;Servers&#39;][$i][&#39;controlpass&#39;] = &#39;pmapass&#39;;

这两行分别是控制用户和控制用户密码。也就是上边我们创建的那个用户。

接着找到 Storage database and tables 这一行,把下面的几个参数的注释去掉。结果为:

   $cfg[&#39;Servers&#39;][$i][&#39;pmadb&#39;] = &#39;phpmyadmin&#39;;
        $cfg[&#39;Servers&#39;][$i][&#39;bookmarktable&#39;] = &#39;pma_bookmark&#39;;
        $cfg[&#39;Servers&#39;][$i][&#39;relation&#39;] = &#39;pma_relation&#39;;
        $cfg[&#39;Servers&#39;][$i][&#39;table_info&#39;] = &#39;pma_table_info&#39;;
        $cfg[&#39;Servers&#39;][$i][&#39;table_coords&#39;] = &#39;pma_table_coords&#39;;
        $cfg[&#39;Servers&#39;][$i][&#39;pdf_pages&#39;] = &#39;pma_pdf_pages&#39;;
        $cfg[&#39;Servers&#39;][$i][&#39;column_info&#39;] = &#39;pma_column_info&#39;;
        $cfg[&#39;Servers&#39;][$i][&#39;history&#39;] = &#39;pma_history&#39;;
        $cfg[&#39;Servers&#39;][$i][&#39;tracking&#39;] = &#39;pma_tracking&#39;;
        $cfg[&#39;Servers&#39;][$i][&#39;designer_coords&#39;] = &#39;pma_designer_coords&#39;;
        $cfg[&#39;Servers&#39;][$i][&#39;userconfig&#39;] = &#39;pma_userconfig&#39;;

第六步:测试

将如下代码保存为index.php文件,放到D:\WAMP\WWW目录下面。

82e4865872727f41d1edae4f463247d6
68ccb177a5de0ef9542dde7d35bae727
                                 /html" />
                  ~            text-align:center 색상: 빨간색">
                                                                                                       > if(!$link) echo "MySQL 데이터베이스 연결 실패!";
else echo "MySQL 데이터베이스 연결 성공!";
mysql_close();
?>
          16b28748ea4df4d9c2150843fecfba68
                                                                   'http://localhost:80'을 입력하세요. 80/index.php"를 브라우저 주소 표시줄에 입력하세요.



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PDO 싱글톤 모델다음 기사:PDO 싱글톤 모델