Home > Article > Backend Development > What to do if Linux configuration php.ini does not work
Solution to the problem that Linux configuration php.ini does not work: 1. Place php.ini in the specified directory; 2. Use the "-c" parameter to specify the path of the configuration file to be read when opening the command.
The operating environment of this article: linux5.9.8 system, PHP7.1 version, modified on DELL G3 computer
linux The php.ini configuration does not take effect when adding extensions
Because openssl is not turned on when compiling and installing php for the first time, resulting in an error when requesting an https website. To do this, you need to manually compile the openssl extension and then add it to php.ini. Problem Even though I have compiled and installed the steps to generate openssl.so correctly, I have also added extension=openssl.so to php.ini, and the server has restarted, but no matter whether I access the printed content of phpinfo() or direct commands Running php -m to print the loaded modules does not show that openssl is loaded.
Regarding the above problem, the problem is actually that if there is no problem with the openssl.so generated by compiling it by yourself, and the php.ini configuration has also been added, it is still not there. If it takes effect, then you have to think that the php.ini you changed is not the one that was loaded. How to verify?
1. Access the content printed by phpinfo() in web mode. Find the information as shown in the figure below, the first line is php In what directory do you need to find the php.ini configuration file? The second line is the actually loaded php.ini file. If not, it is the default one of the php system. Solution: To take effect, it is very simple to put php.ini in Just go to the directory shown in the first line. (Many people may put their files under etc)
2. PHP loaded in php command line mode .ini (most likely different from the one loaded in web mode); On Linux, first switch directories to the bin of your php installation directory, and then use ./php --ini will display the following information; the first line php will be in In which directory to look for the php.ini file, the second line is the path to the actually loaded php.ini file. None means that no configuration file is used and the system's default configuration is used. Solution: Put your php.ini file in In that directory, or use the -c parameter to specify the path of the configuration file to be read when opening the command. (For example, php -c /usr/local/php.ini --ini to see if the specified one takes effect)
In addition, because the loading configuration location in php command line (cli) mode is different, such as the extension directory (the extension_dir field can be found through the output of the php -i command), suppose you want to add a openssl extension, then you add extension=openssl.so to php.ini, but if your openssl.so is not in the directory pointed by the extension_dir field, you cannot see the loaded extension using php -m, so either Write the absolute path in the configuration or put the extension in the right place.
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of What to do if Linux configuration php.ini does not work. For more information, please follow other related articles on the PHP Chinese website!