I remember I extract zip file last time,the file permissions is 644 and
folder permissions is 744.Something I missed?
A folder (directory) with permissions 744 or 700 isn't going to be accessible to the general public (only to you). You want to change it to 755. '4' means 'read' permission, but a directory normally needs the execute bit on ('1') to work as a directory. To round things out, '2' gives 'write' permission, which you normally want to reserve for the owner (you). The numbers are added together to give a resulting permission between 0 (no access) to 7 (read, write, and execute). The first digit is permissions for the owner, the second is for the group, and the third is for the general public. For a website, the second and third permissions are usually the same, and less permissive (no 'write') than for the owner. Folders (directories) are usually 755, executable files (shell or Perl scripts, binaries) are usually 755, and ordinary files (including .html and .php) are usually 644. There are many other combinations in use, especially if you want to restrict access to directories or files.
What was the source of the zip file? A Windows box? Windows permissions in a zip file may not translate well to Linux. Other than manually changing permissions after the fact, I don't know if there's a way to tell the unzipping utility to set permissions to a certain pattern. If you have a small number of files to deal with, cPanel > File Manager can change directory or file permissions one-at-a-time. If you have a massive number of files to deal with, I'd use a
cron job to get a list of all the files (and their directories) with the
ls -alR command, create a
bash script to
chmod each directory and file that needs changing, upload that script, and run it with another
cron job. This assumes you don't have shell access (are on a Basic or Business Linux plan). On a VPS or dedicated server, there are probably easier ways to do this (change directory and file permissions en-masse).