I,m working on company website, the index.php page will be static to show the information of the company, i want include another page to show the posts(articles) blog.php and the link will be www.site.com/blog but its not working.
index.php is a template in the template hierarchy, as the fallback template for all requests, while blog.php is not in the hierarchy at all. So creating blog.php won’t do anything.
What you need to do is create a Page (in WordPress) called “Blog”, and a ‘Home’ page. Then in Settings > Reading, set “Front page displays” to “a static page”, then select the home page for the “Front page’ and “Blog” to the “Posts” page.
Refer to the template hierarchy I linked above to see which template file will actually get used for each page.
Create a page and assign the correct template (over on the right side; you may need to use the Options on the page editor page to display it).
The template you select will depend on the theme; but you should be able to figure it out from the available names.