无法执行菜单项(内部错误)[异常] - 将 PHP 版本从 5.3.1 更改为 5.2.9 时
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/10266656/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Could not execute menu item (internal error)[Exception] - When changing PHP version from 5.3.1 to 5.2.9
提问by KillerFish
I have installed two PHP versions in my WAMP server. When I am using 5.3.10, my wamp server is running just fine. But when I switch to older version of PHP (5.2.9) my wamp server tray icon is showing orange icon. If you click on Put Online I am getting following error.
我在 WAMP 服务器中安装了两个 PHP 版本。当我使用 5.3.10 时,我的 wamp 服务器运行得很好。但是当我切换到旧版本的 PHP (5.2.9) 时,我的 wamp 服务器托盘图标显示橙色图标。如果您单击 Put Online,则会出现以下错误。
I tried to change the port in httpd.conf to 8855 and still I am getting same error. How can I resolve this error?
我试图将 httpd.conf 中的端口更改为 8855,但仍然遇到相同的错误。我该如何解决这个错误?
Could not execute menu item (internal error)[Exception] Could not perform service action:The service has not been started
无法执行菜单项(内部错误)[异常] 无法执行服务操作:服务尚未启动




回答by GIRISH
By default , the WAMP server will take 80as its working port.
默认情况下,WAMP 服务器将80作为其工作端口。
You can change that port number as you like ... here are the steps to do that:
您可以根据需要更改该端口号……以下是执行此操作的步骤:
- click on WAMP server tray icon
- click on apache
- select http.conf
- 单击 WAMP 服务器托盘图标
- 点击阿帕奇
- 选择http.conf
Here notepad will open ...
在这里记事本将打开...
- scroll down and you will see the port number that WAMP server takes ...
change that port number to:
#Listen x.x.x.x:8080 Listen 8080save that file and restart the services... it will work fine...
- now check by typing
http://localhost:8080/.
- 向下滚动,您将看到 WAMP 服务器采用的端口号...
将该端口号更改为:
#Listen x.x.x.x:8080 Listen 8080保存该文件并重新启动服务......它会正常工作......
- 现在通过键入检查
http://localhost:8080/。
回答by sagarpatidar
If you are using Windowstry out the following:
如果您使用的是Windows,请尝试以下操作:
- Press (Windows+R)
- enter "services.msc" and click "OK"
- locate service with name 'wampapache'
- 按 (Windows+R)
- 输入“services.msc”并单击“确定”
- 找到名为“wampapache”的服务
and check if it's status is 'Running'. In case not, right click >> start.
并检查它的状态是否为“正在运行”。如果没有,请右键单击>>开始。
Hope this helps!
希望这可以帮助!
If you have removed WAMP from boot services, it won't work – try the following:
如果您已从引导服务中删除 WAMP,它将无法工作 - 请尝试以下操作:
- Press (Windows+R)
- enter "services.msc" and click "OK"
- locate service with name 'wampapache'
- Right click
wampapacheandwampmysqld, Click 'properties' - and change Start Type to
Manualorautomatic
- 按 (Windows+R)
- 输入“services.msc”并单击“确定”
- 找到名为“wampapache”的服务
- 右键点击
wampapache和wampmysqld,点击“属性” - 并将开始类型更改为
Manual或automatic
This will work!
这会奏效!
回答by Bhavesh B
First go to Wamp->Apache->Service->Test Port 80
首先进入Wamp->Apache->Service->Test Port 80
If its being user by Microsoft HTTPAPI / 2.0
如果它是 Microsoft HTTPAPI / 2.0 的用户
Then the solution is to manually stop the service named web deployment agent service
那么解决办法就是手动停止名为web部署代理服务的服务
If you have Microsoft Sql Server installed, even though the IIS service is disabled, it keeps a web service named httpapi2.0 running.
如果您安装了 Microsoft Sql Server,即使禁用了 IIS 服务,它也会保持名为 httpapi2.0 的 Web 服务运行。
回答by Yassin
Maybe an old version of the service was not uninstalled from windows
也许没有从 Windows 中卸载旧版本的服务
- uninstall the old version running this command line
sc delete wampapache
Reinstall the service from wamp:
Wamp Tray Icon -> Apache -> Service -> Install Service
- 卸载运行此命令行的旧版本
sc 删除 wampapache
从 wamp 重新安装服务:
Wamp 托盘图标 -> Apache -> 服务 -> 安装服务
It works for me, enjoy!
它对我有用,享受!
回答by petter386
Like you installed older version of PHP do the same with Apache. I picked version 2.0.63 and then I was able to run WAMP Server with PHP 5.2.9 with no problems.
I also read that it's problem with 64-bit version of WAMP.
就像您安装了旧版本的 PHP 一样,对 Apache 也一样。我选择了 2.0.63 版,然后我就可以毫无问题地运行带有 PHP 5.2.9 的 WAMP 服务器。
我还读到 64 位版本的 WAMP 有问题。
回答by BABU K
The problem was the MySQL56 service was running and it has occupied the port of WAMP MySQL.After MySQL56 service stopped the WAMP server started successfully.
问题是MySQL56服务正在运行并且占用了WAMP MySQL的端口。MySQL56服务停止后,WAMP服务器启动成功。
回答by Josip Ivic
To anyone who is reading this -> don't use php 5.3 anymore, switch to newer versions of php, because php 5.3 is using deprecated functions.
对于正在阅读本文的任何人 -> 不再使用 php 5.3,请切换到较新版本的 php,因为 php 5.3 正在使用已弃用的函数。
The following is a list of deprecated INI directives. Use of any of these INI directives will cause an E_DEPRECATED error to be thrown at startup, so I advise you to use newer version to develop.
以下是已弃用的 INI 指令列表。使用这些 INI 指令中的任何一个都会导致在启动时抛出 E_DEPRECATED 错误,因此我建议您使用较新的版本进行开发。
define_syslog_variables
register_globals
register_long_arrays
safe_mode
magic_quotes_gpc
magic_quotes_runtime
magic_quotes_sybase
Comments starting with '#' are now deprecated in .INI files.
Deprecated functions:
弃用的功能:
call_user_method() (use call_user_func() instead)
call_user_method_array() (use call_user_func_array() instead)
define_syslog_variables()
dl()
ereg() (use preg_match() instead)
ereg_replace() (use preg_replace() instead)
eregi() (use preg_match() with the 'i' modifier instead)
eregi_replace() (use preg_replace() with the 'i' modifier instead)
set_magic_quotes_runtime() and its alias, magic_quotes_runtime()
session_register() (use the $_SESSION superglobal instead)
session_unregister() (use the $_SESSION superglobal instead)
session_is_registered() (use the $_SESSION superglobal instead)
set_socket_blocking() (use stream_set_blocking() instead)
split() (use preg_split() instead)
spliti() (use preg_split() with the 'i' modifier instead)
sql_regcase()
mysql_db_query() (use mysql_select_db() and mysql_query() instead)
mysql_escape_string() (use mysql_real_escape_string() instead)
Passing locale category names as strings is now deprecated. Use the LC_* family of constants instead.
The is_dst parameter to mktime(). Use the new timezone handling functions instead.
Deprecated features:
已弃用的功能:
Assigning the return value of new by reference is now deprecated.
Call-time pass-by-reference is now deprecated.
回答by Antony Joslin
Some applications like skype uses wamp's default port:80 so you have to find out which application is accessing this port you can easily find it by using TCP View. End the service accessing this port and restart wamp server. Now it will work.
某些应用程序(如 Skype)使用 wamp 的默认端口:80,因此您必须找出哪个应用程序正在访问此端口,您可以使用TCP View轻松找到它。结束访问该端口的服务并重启wamp服务器。现在它将起作用。
回答by T.Todua
- Open
Task Manager - Go to Details
- Find and kill
Skype...apps
- 打开
Task Manager - 前往详情
- 查找和终止
Skype...应用程序
Restart WampServerand it should work
重新启动WampServer它应该可以工作

