


New installation of Apache2, PHP5, MYSQL5_PHP tutorial under Win XP
Seeing that PHP and MYSQL have released new versions, I wanted to try something new, so I tried to install it, and then wrote down the installation process. I hope it can be helpful to novices learning PHP. Buzhu may consider it more refined
The simple process of newly installing Apache2, PHP5, MYSQL5, Zend under Windows XP
1. Download address:
Apache2.0.50: http://httpd.apache.org/download.cgi
PHP5.0.2: http://cn2.php.net/get/php-5.0.2-Win32.zip/from/a/mirror
MYSQL5.0.2: http://dev.mysql.com/downloads /mysql/5.0.html
Zend2.5.2: http://www.zend.com/store/free_download.php?pid=13]
I won’t talk about the installation of the software, there are only The one under PHP is a zip package, just unzip it directly.
The installation order is the order listed above. I installed Zend last after everything ran smoothly.
2. Simple installation process:
(1) Apache:
The installation of Apache2.0.50 is very simple. I installed it directly to the root directory of E drive (my C drive is the system drive and D drive It is a temp disk. I accidentally found that using a separate partition under Windows to store temporary files has a great impact on the speed of the system. Doing so can improve the speed of the system. Interested friends can give it a try). After installation, my The apache directory is E: apache2
(2) PHP:
I directly unzipped it and put it in the php directory of the E drive, which will make it much easier to find files.
(3) Mysql:
Install directly to E: mysql. Its default directory is too long and is under the C drive. Even the C drive does not contain anything except windows files.
(4) Zend:
After all debugging was normal, I installed Zend under E:program fileszend
3. Configuration process:
(1) http.conf
I changed several places in this file:
To run PHP directly as a module of apache, I added two sentences in it:
CODE: [Copy to clipboard]
LoadModule php5_module "E:/php/php5apache2.dll"
AddType application/x-httpd-php .php
I created a www directory in the E:apache2 directory to store my site files , changed this sentence in http.conf:
Changed DocumentRoot "E:/Apache2/htdocs" to DocumentRoot "E:/Apache2/www"
Apache2.0.x in 1.3 Compared with 2.0.x, .x cannot directly list directories by default. I felt uncomfortable, so I changed it:
Put the following statement under the sentence DocumentRoot "E:/Apache2/www"
CODE: [Copy to clipboard]
Options FollowSymLinks
AllowOverride None
/>
changed to:
CODE: [Copy to clipboard]
Options Indexes FollowSymLinks
AllowOverride None
/>
Set the default character of apache to Chinese simplified:
AddDefaultCharset GB2312
Modify the directory Default homepage:
After DirectoryIndex, write the file name you want to set as the homepage, such as: index.html index.php, etc.
No other changes are made
One thing to note The thing is, to make these configurations take effect, you need to restart apache
(2) php.ini
When I used php4.x in the past, I thought it was very simple to configure, so I even used PHP5 and configured it directly. Who knew that mysql could not be used and it was said that the dynamic library could not be connected. I checked carefully and php_mysql.dll clearly existed, but it said it could not be found. This made me depressed for a long time. I even re-decompressed php5 to no avail. Later, I found this sentence in the install document of php: php_mysql.dll MySQL functions PHP >= 5.0.0, requires libmysql.dll (bundled)
So I found the reason...
Configuring php5.0.2 is done like this:
Copy php.ini-dist to C:windows and rename it to php.ini (everyone who has installed php has done this)
Then modified a few places :
extension_dir = "E:phpext" (Specify the directory of the dynamic link library. The difference between php5 and php4 is that its dynamic link library directory has changed. This is detailed in its document structure)
Then remove the semicolons in front of the following sentences
; extension=php_dba.dll
; extension=php_dbase.dll
; extension=php_filepro.dll
; extension=php_gd2.dll
; extension=php_imap.dll
;extension=php_mysql.dll
Next, some file upload and maximum memory usage limits were modified:
memory_limit = 20M
post_max_size = 20M
upload_max_filesize = 20M
Nothing else has been changed. After modifying php.ini, apache must be restarted
The next very important thing is to copy libmysql.dll and libmysqli.dll in the php directory Under windows/system32, if you don't do this, the mysql dynamic link library cannot be loaded normally.
(3) Configuration of Mysql and Zend
Now that Apache and PHP have been configured, enter localhost in the browser to see the result. It runs successfully, and then enter localhost/phpmyadmin to see it is also successful.Depressed, Phpmyadmin prompts error message:
QUOTE:
MySQL returns:
#1251 - Client does not support authentication protocol requested by server; considering upgrading MySQL client
It’s strange, even though I installed the latest version of MYSQL, how could the client version be too low? It’s really frustrating
I just let it go for a while. After many tests and still failed, I gave up and started playing with KOF97
Then with the help of CCF.Panda and IM286.ceo, I finally found the reason:
Legacy CEO: "Upgrade the client
The new version of mysql uses a new password verification method
Set mysql password This problem can be solved by using old_password"
CCF. Panda: "Just use old_password" to reset the password"
Thanks to these two friends, the specific solution is as follows:
Because I don’t know how. Upgrade the client, because the server and client are installed bundled under Windows, I used the old_password method:
QUOTE:
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD(newpwd)
-> WHERE Host = some_host AND User = some_user;
mysql> FLUSH PRIVILEGES;
Then browse "http://localhost/phpmyadmin", OH YEAH!

In PHP, you can use session_status() or session_id() to check whether the session has started. 1) Use the session_status() function. If PHP_SESSION_ACTIVE is returned, the session has been started. 2) Use the session_id() function, if a non-empty string is returned, the session has been started. Both methods can effectively check the session state, and choosing which method to use depends on the PHP version and personal preferences.

Sessionsarevitalinwebapplications,especiallyfore-commerceplatforms.Theymaintainuserdataacrossrequests,crucialforshoppingcarts,authentication,andpersonalization.InFlask,sessionscanbeimplementedusingsimplecodetomanageuserloginsanddatapersistence.

Managing concurrent session access in PHP can be done by the following methods: 1. Use the database to store session data, 2. Use Redis or Memcached, 3. Implement a session locking strategy. These methods help ensure data consistency and improve concurrency performance.

PHPsessionshaveseverallimitations:1)Storageconstraintscanleadtoperformanceissues;2)Securityvulnerabilitieslikesessionfixationattacksexist;3)Scalabilityischallengingduetoserver-specificstorage;4)Sessionexpirationmanagementcanbeproblematic;5)Datapersis

Load balancing affects session management, but can be resolved with session replication, session stickiness, and centralized session storage. 1. Session Replication Copy session data between servers. 2. Session stickiness directs user requests to the same server. 3. Centralized session storage uses independent servers such as Redis to store session data to ensure data sharing.

Sessionlockingisatechniqueusedtoensureauser'ssessionremainsexclusivetooneuseratatime.Itiscrucialforpreventingdatacorruptionandsecuritybreachesinmulti-userapplications.Sessionlockingisimplementedusingserver-sidelockingmechanisms,suchasReentrantLockinJ

Alternatives to PHP sessions include Cookies, Token-based Authentication, Database-based Sessions, and Redis/Memcached. 1.Cookies manage sessions by storing data on the client, which is simple but low in security. 2.Token-based Authentication uses tokens to verify users, which is highly secure but requires additional logic. 3.Database-basedSessions stores data in the database, which has good scalability but may affect performance. 4. Redis/Memcached uses distributed cache to improve performance and scalability, but requires additional matching

Sessionhijacking refers to an attacker impersonating a user by obtaining the user's sessionID. Prevention methods include: 1) encrypting communication using HTTPS; 2) verifying the source of the sessionID; 3) using a secure sessionID generation algorithm; 4) regularly updating the sessionID.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 English version
Recommended: Win version, supports code prompts!

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function
